関数・メソッド

指定したブックをアクティブにする【Activateメソッド】【ExcelVBA】

構文

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で行うだけです。
  • 変数に入っていなければブック名でアクティブにします。
  • シートも含めてアクティブにする場合はこちらの記事を参考にしてください。

関連記事

コメント

タイトルとURLをコピーしました