Robには、評価の採点に使用されるワークシートがいくつかあります。最初のワークシートには、名前、日付などのセルがあり、次に複数選択の回答を入力するためのいくつかの列があります。シートは保護されているため、変更できるのは入力セルのみです。ユーザーが列の最後のセルを終了すると、フォーカスは次の保護されていないセルにジャンプします。これは、次の列の最初のセルであるか、「日付」セルである可能性があります。 Robは、値が列の最後(下)のセルに入力されると、指定したセルに移動するように、フォーカスを制御する方法を考えています。

プログラムは次に選択されるセルを選択する独自の順序を決定するため、Excelでこれを行う組み込みの方法はありません。ワークシートでEnterキーを押すと次に選択されるセルを変更できますが、保護されたワークシートでTabキーを押すと何が起こるかを変更することはできません。デフォルトでは、セルはワークシートで左から右に選択され、次に上から下に選択されます。

Tabキーが押されたときに何が起こるかを変更したい場合は、マクロを使用して選択順序を制御する必要があります。

次のマクロは例です。セルC10に何かを入力するとセルD5に移動し、セルD10に何かを入力するとE5に移動します。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$10" Then Range("D5").Select     If Target.Address = "$D$10" Then Range("E5").Select End Sub

このようなVBAソリューションを使用する場合の問題は、スプレッドシートが(特に大きなスプレッドシートの場合)少し遅くなる可能性があることです。マクロは、その性質上、元に戻す機能が無効になっていることも意味します。

注:

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

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

このヒント(10314)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。