- ベストアンサー
選択範囲内でアクティブセルを移動する
エクセル 選択範囲内でアクティブセルを移動する方法をご教授ください 保護機能を使って実現するのではなく マクロを使って実現する方法をご教授ください (範囲はA1:R10000までの範囲です)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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 といった具合です
その他の回答 (3)
- redfox63
- ベストアンサー率71% (1325/1856)
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イベントなどで ・・・
補足
ありがとう御座います すばらしいです 感謝感謝です 勉強 奮闘中で 大変勉強になります すいません こちらのコードで 折り返し点とか 何処までとかは解るのですが 範囲の始まりA1が解りません例えば範囲がB3:R18ですとどのように成るのでしょうか ご指南ください
- tom11
- ベストアンサー率53% (134/251)
今ひとつ、意味解りませんが、 もしかして、以下のようなことですか。 Range("a1:r1000").Select Range("b2").Activate 日本語にすると、 a1:r1000の範囲を選びb2をアクティブセルにする。 アクティブセルを別な場所にしたいなら、 そのセルをアクティベイとする
- redfox63
- ベストアンサー率71% (1325/1856)
で、何をされたときにどのように変更したいのでしょう? A1が選択されていて何か数値などの入力があったときなのか このとき どこへ移動したいのか また、水平に移動するとしてR列にあった場合にどこへ移動させるのか 垂直に移動させる場合に 10000行にあった場合にはどこへ移動すのか それとも移動しないのか ・・・ 範囲外のセルが選択された場合に 範囲内のセルへ移動したいのか 選択されるセルが複数あるがそのうち1つが範囲外になった場合の矯正 いろいろな場面が想定できます …
補足
すいません説明不足で申し訳ありません A1から右にR1 R1から改行A2にそしてR2と言うように 選択させた範囲内でエンターキーでシフトさせたいのですが よろしくお願いいたします
お礼
誠にありがとう御座いました 勉強になりました