企業研修講師派遣のBESTグループ
出張パソコン教室ITスクール
webコンサルティングスクール
パソコンの家庭教師BEST

Home 業務効率化全般 入力後のセル移動方向をシートごと・ブックごとに変える|Excel(エクセル)マクロ・VBA

0 29325

Excelでは、[Enter]キーを押したあと、次にどのセルをアクティブにするのかを変更できます。

2003までのExcelならば[オプション]ダイアログ-[編集]タブ-[入力後にセルを移動する]欄で、Excel 2007・2010ならば[Excelのオプション]ダイアログ-[詳細設定]-[編集設定]欄-[Enterキーを押した後にセルを移動する]欄で、[Enter]キーを押したあとにセルを移動するかどうか、移動するならば下・右・上・左のどの方向へ移動するのかを設定できます。

講習中に、時々、この[Enter]キーを押したときの設定について、
「エクセル Enter後移動方向 シート毎設定」
「エクセル 入力後セル移動方向 ファイル毎に」
といった質問を受けることがあります。

ワークシートごと・ブック(ファイル)ごとに、[Enter]キーを押したあとの移動方向を切り替える方法を探している方の質問です。

[Enter]キーを押した後のアクティブセルの移動方向は、アプリケーションごとに設定されるものなので、標準の機能で、シートごとやブックごとに[Enter]後に移動する方向を変えることはできません。

しかし、VBA(Visual Basic for Applications)を利用して、イベントプロシージャを作成すれば、シートごと・ブックごとに移動方向を変更したり、移動するかどうかを設定できます。

▼Enterキーを押したあと右方向にアクティブセルを移動するWorksheet_Activateイベントプロシージャ

Private Sub Worksheet_Activate()

 Application.MoveAfterReturn = True
 Application.MoveAfterReturnDirection = xlToRight

End Sub

まず、Application.MoveAfterReturnプロパティで、[Enter]キーを押したあとにアクティブセルを移動するかどうかを設定します。「True」なら移動する、「False」なら移動しない設定になります。

Application.MoveAfterReturnプロパティを「True」にして移動する設定にした場合、Application.MoveAfterReturnDirectionプロパティで移動方向を指定できます。

「xlDown」なら下
「xlToRight」なら右
「xlToLeft」なら左
「xlUp」なら上
となります。

それぞれのシートで、[Enter]キー後に、移動しなくなったり、移動方向が自動的に変更されることをご確認いただけるでしょう。

ファイルごとに、移動するかどうか・移動方向を設定したい場合、Workbook_Activateイベントプロシージャに同様のコードを書いておけばOKです。
 

ご質問や感想は上記からコメントをお願い致します

返信を残す