ワークシート間の移動の無効化(Microsoft Excel)
Excelには、ワークブック内のあるワークシートから別のワークシートに移動するためのさまざまな方法が用意されています。ワークシート間の移動を無効にしたい場合は、何かをするために必要なさまざまな方法のために、目の前に難しいタスクがあります。
たとえば、ワークシート間を移動する1つの方法は、Ctrl + PageUpまたはCtrl + PageDownを押すことです。特定のブックに対してこれらのキーを無効にするには、次の方法でOnKeyメソッドを使用する必要があります。
Private Sub Workbook_Activate() Application.OnKey "^{PgDn}", "" Application.OnKey "^{PgUp}", "" End Sub
Private Sub Workbook_Deactivate() Application.OnKey "^{PgDn}" Application.OnKey "^{PgUp}" End Sub
これらの2つのマクロは、ThisWorkbookオブジェクトに配置する必要があります。 1つ目は、ブックがアクティブ化されるたびに実行され、Ctrl + PageUpおよびCtrl + Page Downは、押されても何も実行されないため無効になります。 2番目のマクロは、ブックが非アクティブ化されたときに実行され、キーを再度有効にします。
シートを手動で選択する、移動する、ハイパーリンクを使用するなど、ワークシートを切り替える方法は他にもたくさんあります。ワークシート間の移動を防ぐ最も簡単な方法は、アクセスしたくないワークシートを非表示にすることです。ワークブックを保護し、VBプロジェクトを保護することは、ユーザーがシート間を移動するのを「阻止」するのにも役立ちます。
シートが非表示になっていると、選択できないため、移動できません。 Go Toはそれらに移動せず、ハイパーリンクはそれらに移動しません。
ユーザーが後で非表示のワークシートを表示できるようにする場合は、独自のコントロール/ボタンを使用してマクロルーチンを作成し、それらのシートに移動する必要があります。このルーチンは、これから行うシートを「再表示」し、残ったシートを非表示にします。
ニーズに応じて、試すことができるもう1つのアプローチがあります。 ThisWorkbookオブジェクトに次のマクロを追加できます:
Private Sub Workbook_SheetDeactivate(ByVal mySheet As Object) Application.EnableEvents = False mySheet.Activate Application.EnableEvents = True End Sub
このマクロは、現在のワークシートが非アクティブ化されるたびに実行されます。
基本的に、残っているワークシートを「再アクティブ化」します。つまり、他のワークシートを選択することはできません。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(3333)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkワークシート間の移動の無効化。