Excel VBA セルの移動方向を素早く変更する

スポンサーリンク

Enterでセルの移動する方向を素早く変更する方法

通常、セルでEnterキーを押すと下方向のセルに移動しますが、右方向にデータを入力するときは、Enterキーで右方向に移動できると便利です。

オブションメニューでEnterでの進行方向を変更はできますが、変更するのは面倒ですし、かえって効率が悪くなります。

そこで、VBAで右クリックショートカットメニューに移動変更メニューを追加して、素早くセルの移動方向を変更できるプログラムを考えます。

右クリックメニューにコマンドを追加する方法

以前にも、コマンド追加記事を書きましたのでご参照ください。

右クリックメニューは、CommandBar(コマンドバー)オブジェクトで操作します。セルのコンテキストメニューの名前は「Cell」です。メニュー項目を表す、Controls(コントロールズ)コレクションに、新しいコマンドをAdd(アド)メソッドで追加します。

コマンドに表示される文字例は、Caption(キャプション)プロパティに指定します。

右クリックメニューにコマンドを追加するコード

Sub コマンド追加()
With CommandBars("cell").Controls.Add(Before:=1, Type:=msoControlPopup)
     .Caption = "移動方向"
With .Controls.Add
     .Caption = "下移動"
     .OnAction = "下移動"
End With
With .Controls.Add
     .Caption = "右移動"
     .OnAction = "右移動"
End With
With .Controls.Add
     .Caption = "左移動"
     .OnAction = "左移動"
End With
With .Controls.Add
     .Caption = "上移動"
     .OnAction = "上移動"
End With
End With
End Sub

このコードを標準モジュールに記述します。

標準モジュールに記述後、一度だけマクロを実行して下さい。

※二度実行すると同じコマンドが2つできますのでご注意ください。

マクロ実行手順

1.開発ダグをクリックします。
2.マクロをクリックします。



3.マクロを一度だけ実行します。


実行結果

セルを右クリックするとメニューの一番上にコマンドが追加されました。



コマンドを選択するとサブメニューが表示されます。



※このコードを実行するとすべてにWookBookにコマンドが追加されます。
削除したいときの為に、追加したコマンドメニューを削除するコードも
同じ標準モジュール内に記述しておきます。

追加したコマンドを削除するコード

Sub コマンド削除()
  CommandBars("cell").Controls("移動方向").Delete
End Sub

追加コマンドを削除する場合はマクロの実行から、コマンド削除マクロを実行してください。

ここまでのコード解説はこちらをご覧下さい。

次に、サブメニューをクリックしたときに、実行されるマクロを、同じ標準モジュール内に記述します。


・下移動のコード

Sub 下移動()
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlDown
End Sub

・右移動のコード

Sub 右移動()
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlToRight
End Sub

・左移動のコード

Sub 左移動()
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlToLeft
End Sub

・上移動のコード

Sub 上移動()
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlUp
End Sub

コードの解説

  • 1行目のApplication.MoveAfterReturn【アプリケーションムーヴアフターリターン)】プロパティでEnterキーを押したあと移動するかしないかを指定します。
    移動する場合は「True 」移動しない場合は「False」を指定します。
  • 2行目はApplication.MoveAfterReturnをTrueにした場合に
    Application.MoveAfterReturnDirection【ムーヴアフターディレクション】プロパティに移動方向を指定します。

移動方向は

  • xlDown   【下】
  • xlToRight  【右】
  • xlToLeft  【左】
  • xlUp     【上】

例えば、セル移動方向を右にしてそのままブックを閉じると、次に他のブックを開いた時に、セルの移動方向が右のままになるので、ブックを閉じる直前にセルの移動方向を標準の下方向に戻すマクロを「ThisWorkbookモジュール」の
Private Sub workbook_BeforeClose(Cancel As Boolean)プロシージャに、マクロを記述します。この方法はこちらをご覧下さい。

ブックを閉じる直前にセルの移動方向を下方向に戻すコード

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.MoveAfterReturn = True
  Application.MoveAfterReturnDirection = xlDown
End Sub

以上で、セルの移動方向を素早く変更する方法についての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告