構文
Object.Activate
Activate・・・・・・指定したオブジェクトを最前面に表示します。
Activateメソッドは指定したオブジェクトをアクティブ(前面表示)にします。
Workbooksプロパティを使用する事で任意のブックをアクティブ表示にします。
指定したブックをアクティブにするサンプルコード
Public Sub sample()
'■指定したブックを開く。
Workbooks.Open "c:\\vba\sample1.xlsx"
Workbooks.Open "c:\\vba\sample2.xlsx"
Workbooks.Open "c:\\vba\sample3.xlsx"
'■変数でアクティブにする場合(格納)sample3.xlsxが格納
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim ws As Worksheet: Set ws = ActiveWorkbook.ActiveSheet
'■各ブックをアクティブにする
Workbooks("sample1.xlsx").Activate
'■マクロを実行しているブックをアクティブにする
ThisWorkbook.Activate
'■変数でブックをアクティブにする(wsもwbもどちらも結果は同一)
wb.Activate
ws.Parent.Activate
'■よくある失敗(ファイル名だけでなくパスもいれてしまう)
'実行時エラー9
'インデックスが有効範囲にありません
Workbooks("c:\\vba\sample1.xlsx").Activate
End Sub
注意点
- ws.Parentは有効活用できます。こちらの記事を参考にしてください。
- 自ブックであればThisWorkbookで行うだけです。
- 変数に入っていなければブック名でアクティブにします。
- シートも含めてアクティブにする場合はこちらの記事を参考にしてください。



コメント