VBA で Excel のワークシートをアクティブ化する
この記事は、いくつかの例を使用して、VBA の Excel でワークシートをアクティブ化する方法を理解するのに役立ちます。
VBA の Excel でワークシートをアクティブ化する
Excel ファイルを使用して VBA で作業する場合、複数のシートがあります。単一または複数の Excel ファイル内のすべてのシートで同じプロセスまたは関数を実行する場合は、関数を実行する前に別のシートをアクティブにする必要があります。
各シートのコードを何度も別々に書くには時間がかかります。
この目的のために、VBA は、Excel での作業中に任意のシートをアクティブにするために使用できるメソッド Activate
を提供します。
VBA アクティブ化
ワークシートメソッドを使用してシートをアクティブシートにする例を見てみましょう。この方法は、VBA マクロを作成するときに広く使用されています。
ワークシートの名前または番号のいずれかを使用できます。最良の方法は、シート名を使用することです。
Sub activateNewSheet()
Worksheets("Sheet2").Activate
'Worksheets(2).Activate
End Sub
これにより、Sheet2
または Excel ファイルの 2 番目のシートがアクティブなワークシートになります。
VBA の ActiveSheet
オブジェクト
現在のシートがアクティブであるか、または Activate
メソッドを使用してコード内の別のシートをアクティブにしたかどうかを想像してみてください。いくつかのタスクを実行するために、現在アクティブなシートについて言及したいと思います。
ActiveSheet
としてアクティブシート用に特別に作成されたオブジェクトの助けを借りて、それを簡単に言及することができます。
グラフまたはチャートで作業していて、現在アクティブなシートを忘れた場合は、次のコードを使用して、VBA で現在アクティブなシートに直接言及できます。以下に示すように、2つのオプションを使用してアクティブシートで機能を実行できます。
Sub addValueActiveSheet()
ActiveSheet.Range("B1")="Value"
Range("B1")="Value"
End Sub
出力:
上記のコードからわかるように、2つの方法を使用しましたが、アクティブシートについて言及するかどうかは関係ないため、どちらも同じ結果になりました。
シートをアクティブシートとして設定すると、次のコードが同じシートに自動的に実装されます。
VBA で ActiveSheet
を設定する
それでは、VBA での ActiveSheet
の設定について説明しましょう。変数に設定して、ExcelVBA のアクティブシートについて言及すると便利です。
アクティブシートを設定してオブジェクトに割り当て、そのオブジェクトを使用して、必要に応じてアクティブシートに言及できます。手続き中はどこでも言及できます。
以下のコードは、アクティブシートの範囲 B1
に値を出力します。
Sub setActivSheet()
Dim active As Worksheet
Set active = ActiveSheet
active.Range("B1") = "Value"
End Sub
出力: