こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

選択範囲内でアクティブセルを移動する

エクセル 選択範囲内でアクティブセルを移動する方法をご教授ください 保護機能を使って実現するのではなく
マクロを使って実現する方法をご教授ください

(範囲はA1:R10000までの範囲です)

投稿日時 - 2008-10-27 18:29:35

QNo.4434245

すぐに回答ほしいです

質問者が選んだベストアンサー

B3:R18 の場合
B3はColumn=2、Row=3
R18は Column=18、Row=18ですよね
したがって
  If Target.Cells.Count = 1 Then
    ' R列なので変更なし
    If Target.Column > 18 Then
      ' 18行目までなので変更
      If Target.Row > 18 Then
        ' B3からなので Cellsの1を3に変更
        Cells(3, Target.Column).Select
      Else
        ' B列からが対象なので CellsのColumnを1から2へ
        Cells(Target.Row + 1, 2).Select
      End If
      Exit Sub
    End If
    ' こちらも18行に制限
    If Target.Row > 18 Then
      ' 3行からなので 1を3へ変更
      Cells(3, Target.Column).Select
    End If
  End If
といった具合です

投稿日時 - 2008-10-29 01:13:27

お礼

誠にありがとう御座いました
勉強になりました

投稿日時 - 2008-10-29 07:46:10

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

Enterが押されたかどうかのチェックは難しいいですが
選択されたセルが A1:R10000の中かどうかは SelectionChangeイベントで取得できます

ワークブックかシートモジュールで
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  ' Target.Cells.Count = 1 選択されたセルが1つの場合をチェック
  If Target.Cells.Count = 1 Then
    If Target.Column > 18 Then
      If Target.Row > 10000 Then
        Cells(1, Target.Column).Select
      Else
        Cells(Target.Row + 1, 1).Select
      End If
      Exit Sub
    End If
    If Target.Row > 10000 Then
      Cells(1, Target.Column).Select
    End If
  End If
End Sub

Enterで右移動をさせたいなら
Application.MoveAfterReturnDirection = xlToRight
をどこかのタイミングで実行すれば良いでしょう
ブックのOpenイベントなどで ・・・

投稿日時 - 2008-10-28 11:57:43

補足

ありがとう御座います
すばらしいです 感謝感謝です
勉強 奮闘中で 大変勉強になります
すいません
こちらのコードで 折り返し点とか 何処までとかは解るのですが
範囲の始まりA1が解りません例えば範囲がB3:R18ですとどのように成るのでしょうか
ご指南ください

投稿日時 - 2008-10-28 14:52:35

ANo.2

今ひとつ、意味解りませんが、

もしかして、以下のようなことですか。

Range("a1:r1000").Select
Range("b2").Activate

日本語にすると、

a1:r1000の範囲を選びb2をアクティブセルにする。

アクティブセルを別な場所にしたいなら、
そのセルをアクティベイとする

投稿日時 - 2008-10-27 19:28:45

ANo.1

で、何をされたときにどのように変更したいのでしょう?

A1が選択されていて何か数値などの入力があったときなのか
このとき どこへ移動したいのか
また、水平に移動するとしてR列にあった場合にどこへ移動させるのか
垂直に移動させる場合に 10000行にあった場合にはどこへ移動すのか
それとも移動しないのか ・・・

範囲外のセルが選択された場合に 範囲内のセルへ移動したいのか
選択されるセルが複数あるがそのうち1つが範囲外になった場合の矯正

いろいろな場面が想定できます …

投稿日時 - 2008-10-27 18:57:46

補足

すいません説明不足で申し訳ありません
A1から右にR1 R1から改行A2にそしてR2と言うように
選択させた範囲内でエンターキーでシフトさせたいのですが
よろしくお願いいたします

投稿日時 - 2008-10-27 21:39:37

あなたにオススメの質問