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

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

デフォルトでは、セルはワークシートで左から右に選択され、次に上から下に選択されます。

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

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

Private Sub Worksheet_Change(ByVal Target As Range)

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

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

タブオーダーのニーズがより複雑な場合は、次のWebページで説明されているコードに興味があるかもしれません:

http://www.ozgrid.com/forum/showthread.php?t=82272

お分かりのように、コードは時々かなり複雑になる可能性があります。もちろん、そのようなアプローチは、すべてのセル間の移動を規定しているため、ワークシート自体のデザインを変更することをより困難にします。

注:

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

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

このヒント(10313)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: