マクロでセルの移動方向を制御する
マクロでセルの移動方向を制御する
Enter キーを押したとき、セルは下に移動します(初期設定)。
[オプション]からセルの移動方向を上下左右に変更することができます。
1)『オプション』メニューからセルの移動方向を変更する方法
『ファイル』⇒『オプション』⇒『詳細設定』⇒『Enterキーを押したら、セルを移動する(M)』で変更できます。
上・下・左・右の4方向から選びます。
この変更方法は、すべてのExcelファイルに対して設定が反映されます。
つまり、ファイルAを開いているときにセルの移動方向を『右』に設定すると、ファイルBを開いたときも
セルの移動方向は『右』になります。
特定のファイルだけセルの移動方向を変更したい!という方は、次のマクロで変更する方法に進みましょう。
2)マクロでセルの移動方向を変更する方法
書き込むワークブックは「ThisWorkbook」です。以下のソースを張り付けてください。
'ブックがアクティブになったとき、セルを右に移動するよう設定 Private Sub Workbook_Activate() Application.MoveAfterReturn = True Application.MoveAfterReturnDirection = xlToRight End Sub 'ブックが非アクティブになったとき、セルを下に移動するよう設定 Private Sub Workbook_Deactivate() Application.MoveAfterReturn = True Application.MoveAfterReturnDirection = xlDown End Sub
ブックのイベントプロシージャを復習しましょう。
Activateブックがアクティブになったとき
イベントの種類 | イベントトリガー |
Deactivate | ブックがアクティブでなくなったとき |
ここで使うプロパティは以下の2つです。
MoveAfterReturn |
ユーザーが Enter キーを押したときに、アクティブ セルを移動するかどうかを決定します。既定値は True です。ユーザーが Enter キーを押したときにアクティブ セルを移動する方向を設定するには、MoveAfterReturnDirection プロパティを使用します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。 |
使用例 |
次の使用例は、ユーザーが Enter キーを押した後も、アクティブ セルが選択されたままの状態にします。 Spreadsheet1.MoveAfterReturn = False |
出典 |
https://msdn.microsoft.com/ja-jp/library/cc409510.aspx |
MoveAfterReturnDirection |
MoveAfterReturn プロパティが True に設定されている場合、ユーザーが Enter キーを押したときにフォーカスが移動する方向を設定します。値の取得および設定が可能です。使用できる定数は、XlDirection クラスの定数のいずれかです。 使用できる定数は、次に示す XlDirection クラスの定数のいずれかです。 xlDown、xlToLeft、xlToRight、xlUp |
使用例 |
次の使用例は、ユーザーが Enter キーを押した後も、アクティブ セルが選択されたままの状態にします。 Spreadsheet1.MoveAfterReturn = False |
出典 |
https://msdn.microsoft.com/ja-jp/library/cc409511.aspx |
以上で完成です。
応用編
2)マクロ編では『ThisWorkbook』にマクロを記述しました。これによりブックの表示を切り替えるたびにセルの移動を初期値の「下」に戻しています。
他の活用方法として、シートのワークブックにコードを記述すれば、そのシートを表示している時だけセルの移動を切り替えることもできます。