パトリックは、セルの動きをワークブックの1つのワークシートで右に移動し、同じワークブックの別のワークシートで下に移動する方法があるかどうか疑問に思います。彼が見つけることができるのは、ブック内のすべてのワークシートのグローバル設定だけです。

パトリックは正しいです。この設定は、Excelでグローバルに処理されるものです。次の手順で設定を変更できます:

。 [Excelのオプション]ダイアログボックスを表示します。 (Excel 2007では、[Office]ボタンをクリックし、[Excelオプション]をクリックします。Excel2010以降のバージョンでは、リボンの[ファイル]タブを表示し、[オプション]をクリックします。)

。ダイアログボックスの左側にある[詳細]をクリックします。 (図1を参照)

。 [編集オプション]で、[Enterキーを押した後、選択範囲を移動する]チェックボックスがオンになっていることを確認します。 (デフォルトでチェックする必要があります。)

。 [方向]ドロップダウンリストを使用して、必要に応じて方向を変更します。

。 [OK]をクリックします。

これにより、Excelで開いたすべてのブックの移動方向が変わります。 1つのワークシートで動きを変化させたい場合は、いくつかのイベントハンドラーを使用してこれを実現できます。これらのうちの2つは、別の方法で処理するワークシートに添付されています。ワークシートのタブを右クリックして、表示されるコンテキストメニューから[コード]を選択するだけです。次に、以下をコードウィンドウに貼り付けることができます:

Private Sub Worksheet_Activate()

Application.MoveAfterReturnDirection = xlToRight End Sub
Private Sub Worksheet_Deactivate()

Application.MoveAfterReturnDirection = xlDown End Sub

これらのイベントハンドラーは、ワークシートがアクティブ化されたとき、および別のワークシートを選択してワークシートを非アクティブ化したときに、それぞれトリガーされます。アクティブ化すると、方向がxlToRightに設定されることに注意してください。これは、移動が右に移動することを意味します。ワークシートが非アクティブ化されると、方向はxlDownに設定されます。これは、デフォルトの方向であると見なされます。

3番目のイベントハンドラーも必要になります。これはThisWorkbookモジュールに追加する必要があります:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.MoveAfterReturnDirection = xlDown End Sub

「右に移動」中にExcelを閉じると、これが必要になります

ワークシートがアクティブな場合、移動方向はxlToRightに設定されたままになります。これは、次にExcelを起動したときに、それがデフォルトの方向になることを意味します。 BeforeCloseイベントハンドラーを含めることにより、デフォルトが適切に設定されていることを確認できます。

このアプローチには、小さな潜在的な落とし穴が1つだけあります。最初にブックを開いたとき、最初に表示されたワークシートに対してActivateイベントはトリガーされません。これは、「右に移動」した場合

ワークシートのワークシートが表示されます。デフォルトでは、移動はxlToRightに変更されません。それでもデフォルトに設定されます。おそらくxlDownです。イベントハンドラーを強制的に実行するには、ワークブックに別のワークシートを表示してから、元のワークシートに戻る必要があります。これを手動で行いたくない場合は、4番目のイベントハンドラーを追加できます。これもThisWorkbookモジュールにあります:

Private Sub Workbook_Open()

Sheets("Sheet2").Select     Sheets("Sheet1").Select End Sub

このマクロは、Sheet2という名前のワークシートを選択し、すぐにSheet1という名前のワークシートを選択します。もちろん、ワークシートの名前をワークブックに適した名前に変更する必要があります。最後に選択したワークシートが「右に移動」であることを確認してください

ワークシート。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13640)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。