こんにちは、のざっぺです。
先日、社員からこんな要望がありました。「あるExcelだけEnterキーを押下後、カーソルが下ではなく右に移動してほしい。」とのこと。調べたところ、VBAで制御できることがわかったので紹介していきたいと思います。
全てのExcelに影響が出ててもいいなら設定変更のみ
設定変更方法は「ファイル」→「オプション」→「詳細設定」の画像の赤枠部分を下以外に変更。
こうすることで、あるExcelではなく、全てのExcelが今後Enterキーを押下後、設定した方向に移動するようになります。VBAでやるよりも簡単ですが、全てのExcelに影響がでるのでご注意を!
VBAでの変更
まず「Alt + F11」でコードの画面を開いてください。開いた後、「ThisWorkbook」をダブルクリックしてください。次に下記のコードを「コピー&ペースト」してください。これで「Enterキーを押下後、カーソルが下ではなく右に移動」となります。
Private Sub Workbook_Activate()
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlToRight
End Sub
下記の「Workbook_BeforeClose」はbookを閉じたときに「Enterキーを押下後、カーソルが下に移動」に戻します。これを行わないと他のExcelで操作したときに「Enterキーを押下後、カーソルが右に移動」になるためです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlDown
End Sub
まとめ
今回はVBAを使用して、「あるExcelだけEnterキーを押下後、カーソルが下ではなく右に移動させる」やり方について紹介してきました。要望が出た社員に「入力後にEnterキーではなく、Tabキー押せば右に移動するよ」と言いましたが、「Entertキーで右に移動してほしい」ということだったので、今回はこのような形で対応しました。プログラム初心者の方でも、そんなに難しくないプログラムなどで、こんな要望がありましたらチャレンジしてみてはいかがでしょうか。
最後までお読みいただきありがとうございました。