Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 入力後のセル移動方向をシートごと・ブックごとに変える

入力後のセル移動方向をシートごと・ブックごとに変える

対象:Excel2002, Excel2003, Excel2007, Excel2010

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

2003までのExcelならば[オプション]ダイアログ−[編集]タブ−[入力後にセルを移動する]欄で、Excel 2007ならば[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」なら上
となります。

▼サンプルファイル(003625.xls 41KByte)ダウンロード

サンプルファイルには、
「MoveAfterReturn_False」
「Down」
「ToRight」
「ToLeft」
「Up」
のという5つのワークシートが作成してあり、Worksheet_Activateイベントプロシージャで、それぞれ
「Application.MoveAfterReturn = False」
「Application.MoveAfterReturnDirection = xlDown」
「Application.MoveAfterReturnDirection = xlToRight」
「Application.MoveAfterReturnDirection = xlToLeft」
「Application.MoveAfterReturnDirection = xlUp」
が設定してあります。

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

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

関連語句
横に入力, 入力の順番, 文字入力, セル横移動, 横に移動, 入力後にセルを移動する, 入力方向の変更, エンターキーの進む方向, 改行キーの進む方向

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 入力後のセル移動方向をシートごと・ブックごとに変える

「イベントプロシージャ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.