構文
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で行うだけです。
コメント