関数・メソッド

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

構文

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で行うだけです。

関連記事

コメント

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