日本語入力ソフトとVBAの覚え書き

・各種日本語入力ソフトの辞書解説 ・ちょっと楽になるExcel VBA集

Enterキーを押したときに移動するセルの方向(上下左右)を変更するトグルマクロ

f:id:dz_dzone:20170814233145j:plain

通常、Enterキーを押したときに移動するセルの方向は「下」です。これを「右/上/左」に変更するには「Excelのオプション」を開いて「詳細設定」から変更することが可能ですが、やや面倒くさいです。ここでは、実行するたびに移動するセルの方向を変更するマクロを作ります。

f:id:dz_dzone:20171110110840j:plain

下→右→上→左→下……と切り替える場合

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を使っています。実行後、どのように方向が変わったのかダイアログを出しています。

f:id:dz_dzone:20171110111110j:plain

下→右→下……と切り替える場合

ほとんど同じです。万が一現状が上や左になっていた場合に備え、その場合は下になるようにコードを変更しました。

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

以上。

にほんブログ村 IT技術ブログ VBAへ←記事を気に入って頂けたらポチッとしてもらえると励みになります。