構文
Object.Activate
Activate・・・・・・指定したオブジェクトを最前面に表示します。
Activateメソッドは指定したオブジェクトをアクティブ(前面表示)にします。
WorkSheetsプロパティを使用する事で任意のブックの任意のシートをアクティブ表示にします。
指定したシートをアクティブにするサンプルコード
Public Sub sample()
Workbooks.Open "c:\\vba\sample1.xlsx"
Dim ws As Worksheet: Set ws = ActiveWorkbook.ActiveSheet
'■マクロ実行ブック(現アクティブブック)でシートを変更する場合
ThisWorkbook.Worksheets("Sheet2").Activate 'シート名「Sheet2」をアクティブ
ThisWorkbook.Worksheets(3).Activate 'シート3枚目をアクティブ
'■別ブックをアクティブにする場合
Workbooks("sample1.xlsx").Worksheets(2).Activate 'sample1.xlsxの2枚目をアクティブにする
'■変数でシートをアクティブにする
ws.Activate
'■よくある失敗
'実行時エラー9
'インデックスが有効範囲にありません
'思っていたシートがActiveにならない
Worksheets("Sheet2").Activate 'ブック名指定しないとアクティブブックに対して指令する
'シート〇枚目を""で囲ってしまう。
Worksheets("3").Activate '3枚目ではなくシート名「3」の扱いになる
End Sub
注意点
- Workbooks.Activateの違いはシートも含めてアクティブにします。 単純にWorkbooks.Activateは最後に開いていたシートを表示したままアクティブにします。
- 自ブックであればThisWorkbookで行うだけです。



コメント