ExcelVBAアクティベートシート
VBAで作業しているときに、別のシートを参照したり、別のシートのプロパティを使用したりすることがあります。シート1で作業しているが、シート2のセルA2の値が必要な場合、最初にシートをアクティブ化せずにシート2の値を参照すると、値にアクセスできないため、VBAでシートをアクティブ化するには、ワークシートプロパティをWorksheets( "Sheet2")。Activateとして使用します。
Excelでは、常にワークシートを使用します。ワークシートには、識別しやすいように独自の名前が付いています。通常のスプレッドシートの作業では、ショートカットキーを直接ナビゲートするか、ショートカットキーをクリックしてシートを直接選択します。ただし、VBAでは、参照しているシート名を指定する必要があるのはそれほど簡単ではありません。その後、「選択」メソッドを使用してシートを選択できます。
VBAアクティベートメソッドとは何ですか?
名前が示すように、指定されたワークシートをアクティブにします。シートをアクティブ化するには、worksheetsオブジェクトを使用して正確なワークシート名を指定する必要があります。たとえば、「Sales」というシートをアクティブ化する場合は、次のコードを使用できます。
ワークシート(「販売」)。アクティブ化
構文
したがって、Activateメソッドの構文は次のとおりです。
ワークシート(「シートの名前」)。アクティブ化
ここで、ワークシートはオブジェクトであり、アクティブ化はメソッドです。
このVBAアクティベートシートExcelテンプレートはここからダウンロードできます–VBAアクティベートシートExcelテンプレート例1-インデックス番号でシートをアクティブ化する
Excelでは、複数のワークシートセットを操作しますが、多くの場合、作業を完了するために1つのシート間を移動する必要があります。VBAでは、Activateメソッドを使用して特定のExcelシートをアクティブ化できます。
たとえば、「Sales 2015」、「Sales 2016」、「Sales2017」という3つのシートを作成しました。
シートは2つの方法でアクティブ化できます。1つはシートのインデックス番号を使用する方法で、もう1つはシート名自体を使用する方法です。
ここで、2番目のシートを選択する場合は、Worksheetオブジェクトを使用し、シートのインデックス番号を2と指定します。
コード:
Sub Activate_Example1()Worksheets(2).Activate End Sub
F5キーを使用して、または手動でコードを実行すると、2番目のシート(「Sales2016」)がアクティブになります。
3枚目のシートをアクティブにしたい場合は、シートのインデックス番号として3を使用します。
コード:
Sub Activate_Example1()Worksheets(3).Activate End Sub
これにより、3番目のシートである「Sales2017」がアクティブになります。
次に、2枚目と3枚目を交換します。
技術的には、「Sales 2017」は私の3番目のシートであり、「Sales2016」は私の2番目のシートです。次に、シートのインデックス番号を3として使用し、何が起こるかを確認します。
コード:
Sub Activate_Example1()Worksheets(3).Activate End Sub
私の見解では、「Sales 2017」シートを選択する必要がありますが、「Sales 2016」の順序で3番目のシートであるため、「Sales2016」シートを選択します。
したがって、シートをその名前でアクティブ化することは常に安全なオプションです。
例2–名前でシートをアクティブ化する
次に、シートをその名前でアクティブ化する方法を説明します。シートインデックス番号の代わりに、シート名を二重引用符で囲む必要があります。
コード:
Sub Activate_Example2()Worksheets( "Sales 2016")。Activate End Sub
コードを手動で実行するか、ショートカットキーF5を使用して実行すると、ワークブック内の位置に関係なく、シート「Sales2016」がアクティブになります。
Worksheetsオブジェクトだけでなく、「Sheets」オブジェクトを使用してシートをアクティブ化することもできます。
以下はコードです。
コード:
Sub Activate_Example2()Sheets( "Sales 2016")。Activate End Sub
ワークシートはワークシートオブジェクトにのみアクセスでき、「チャート」シートにはアクセスできません。Sheetsオブジェクトを使用すると、ブック内のすべてのシートにアクセスできます。
例3–別のブックからシートをアクティブ化する
特定のシートをアクティブ化するためにシート名を指定する必要があるのと同様に、別のブックからシートをアクティブ化する場合と同様に、「ワークブック」名も必要です。
コード:
Sub Activate_Example3()Workbooks( "Sales File.xlsx")。Sheets( "Sales 2016")。Activate End Sub
これにより、ワークブック「SalesFile.xlsx」からシート「Sales2016」がアクティブ化されます。
シートのアクティブ化とシートの選択方法
メソッドを使用して同じアクションを実行できます。つまり、メソッドのアクティブ化と選択です。これら2つの方法にはわずかな違いがあります。
#1-メソッドをアクティブ化する
Activateメソッドを使用すると、指定したワークシートのみをアクティブ化できます。
たとえば、以下のコードを見てください。
コード:
Sub Activate_Example()Worksheets( "Sales 2016")。Activate End Sub
ご存知のとおり、このコードはワークシート「Sales2016」を選択します。
#2 –メソッドの選択
Selectメソッドを使用することで、実際に他のタスクも実行できます。
次に、以下のコードを見てください。
コード:
このコードは、シート「Sales 2016」をアクティブにするだけでなく、A1からA10までのセルの範囲も選択します。