Enterキーを押したときに移動するセルの方向(上下左右)を変更するトグルマクロ
通常、Enterキーを押したときに移動するセルの方向は「下」です。これを「右/上/左」に変更するには「Excelのオプション」を開いて「詳細設定」から変更することが可能ですが、やや面倒くさいです。ここでは、実行するたびに移動するセルの方向を変更するマクロを作ります。
下→右→上→左→下……と切り替える場合
Sub SetMARD() ' ★★ Enterを押したら移動する方向を変更 ★★ Select Case Application.MoveAfterReturnDirection Case xlDown Application.MoveAfterReturnDirection = xlToRight MsgBox "下→右に切り替えました。", vbOKOnly + vbInformation Case xlToRight Application.MoveAfterReturnDirection = xlUp MsgBox "右→上に切り替えました。", vbOKOnly + vbInformation Case xlUp Application.MoveAfterReturnDirection = xlToLeft MsgBox "上→左に切り替えました。", vbOKOnly + vbInformation Case xlToLeft Application.MoveAfterReturnDirection = xlDown MsgBox "左→下に切り替えました。", vbOKOnly + vbInformation End Select End Sub
- 「Enterキーを押したときに移動するセルの方向」は Application.MoveAfterReturnDirection で取得および設定が可能
- 上=xlUp
- 下=xlDown
- 左=xlToLeft
- 右=xlToRight
このコードでは、現状の MoveAfterReturnDirection を取得し、その値にしたがって処理を分けたいので、Select Caseを使っています。実行後、どのように方向が変わったのかダイアログを出しています。
下→右→下……と切り替える場合
ほとんど同じです。万が一現状が上や左になっていた場合に備え、その場合は下になるようにコードを変更しました。
Sub SetMARD2() ' ★★ Enterを押したら移動する方向を変更 ★★ Select Case Application.MoveAfterReturnDirection Case xlDown Application.MoveAfterReturnDirection = xlToRight MsgBox "下→右に切り替えました。", vbOKOnly + vbInformation Case xlToRight Application.MoveAfterReturnDirection = xlDown MsgBox "右→下に切り替えました。", vbOKOnly + vbInformation Case Else Application.MoveAfterReturnDirection = xlDown MsgBox "上/左→下に切り替えました。", vbOKOnly + vbInformation End Select End Sub
以上。