dポイントプレゼントキャンペーン実施中!

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

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

A 回答 (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
といった具合です
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/29 07:46

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ですとどのように成るのでしょうか
ご指南ください

補足日時:2008/10/28 14:52
    • good
    • 0

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



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

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

日本語にすると、

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

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

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



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

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

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

この回答への補足

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

補足日時:2008/10/27 21:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!