今回はExcel VBAのシートをアクティブにする方法についてご説明します。アクティブになったシートとは作業対象になっているシートのことで、1つしか設定することはできません。それでは具体的なコードの書き方について確認していきましょう。
シート名を指定してアクティブにする
始めにSheets()でシート名を指定して、Activateでアクティブにすることができます。
<コード>
Sheets("Sheet3").Activate
<実行例>
インデックス番号を指定してシートをアクティブにする
シートにはそれぞれインデックス番号が振られています。通常左から1・2・3・・・というふうに振られているこの番号を使ってシートをアクティブにすることもできます。
<コード>
Sheets(2).Activate MsgBox "2番目のシートをアクティブにしました。"
<実行例>
Worksheetオブジェクトを作成してシートをアクティブにする
作業対象となるシートが何枚もある場合やシート名が長くて一々指定するのが煩わしいと感じるような場合、Worksheetオブジェクトを作成してVBAによる作業がしやすい名前をつけておくと便利ですね。
<コード>
Dim WS As Worksheet 'WSという名前のWorksheetオブジェクトを作成' Set WS = Sheets("東京支店_上半期_売上合計") 'オブジェクトの場合はSetで対象を指定します。' WS.Activate MsgBox "上半期のシートをアクティブにしました。"
<実行例>
非表示のシートについて
通常は操作できないよう非表示に設定しているシートもVBAでアクティブにすると簡単に操作対象にすることができます。
<コード>
Sheets("Sheet4").Activate '非表示に設定したSheet4をアクティブにする' Range("A1") = "Sample"
非表示にしたシートは現在表示されているシート名の部分を右クリック>再表示にて確認することができます。
<実行例>
まとめ
シートをアクティブにすることにより作業対象を明確に指定することができます。Excelファイルには通常何枚もシートが存在するので、誤って別のシートを操作してしまったというような作業ミスを防止することもできますね。