VBA で Excel のワークシートをアクティブ化する

Iqra Hasnain 2024年2月15日
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

出力:

VBA の ActiveSheet オブジェクト

上記のコードからわかるように、2つの方法を使用しましたが、アクティブシートについて言及するかどうかは関係ないため、どちらも同じ結果になりました。

シートをアクティブシートとして設定すると、次のコードが同じシートに自動的に実装されます。

VBA で ActiveSheet を設定する

それでは、VBA での ActiveSheet の設定について説明しましょう。変数に設定して、ExcelVBA のアクティブシートについて言及すると便利です。

アクティブシートを設定してオブジェクトに割り当て、そのオブジェクトを使用して、必要に応じてアクティブシートに言及できます。手続き中はどこでも言及できます。

以下のコードは、アクティブシートの範囲 B1 に値を出力します。

Sub setActivSheet()

Dim active As Worksheet
Set active = ActiveSheet

active.Range("B1") = "Value"
End Sub

出力:

ActiveSheet を VBA に設定