Excel VBA ワークシートをアクティブに(選択)する-Activate

Excel VBAシートをアクティブにする記録です。

シートをアクティブにするには「Activate」メソッドを使います。

「Select」と「Activate」は違って、「Select」は複数選択できますが、「Activate」は1つしか出来ません。

私のイメージ的に言うと、パソコンの画面の「一番前がアクティブ」です。

< スポンサーリンク >





「Activate」メソッド構文

式.Activate

式 = Worksheet オブジェクトを表す変数。

VBAでシートを選択(アクティブに)にする

シート名を指定してシートを選択(アクティブに)する

aaaというシート名のシートを選択(アクティブに)する

Sub SheetActiveTest1()
    Sheets(“aaa”).Activate
End Sub

 

aaaというシート名のシートが存在しない場合はエラーになります
aaaというシート名が存在するか判断して、存在しない場合はaaaというシートを追加し選択(アクティブに)にする

Sub SheetActiveTest2()
    ‘変数の宣言
    Dim ws As Worksheet
    Dim SheetName As String
    Dim flag As Boolean

    ‘変数にシート名を入れておく
    SheetName = “aaa”
    ‘判定用の変数にFalseを代入しておく(一つもtrueにならなかった場合のため)
    flag = False

    ‘ワークシートが存在する限り繰り返す
    For Each ws In Worksheets
        ‘aaaというシート名がある場合は判定用変数にtrueを入れる
        If ws.Name = SheetName Then flag = True
    Next ws

    ‘判定用変数がFalseの場合はaaaというワークシートを最後に追加する
    If flag = False Then
        Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = SheetName
    End If

    ‘aaaというシート名を選択する
    Sheets(SheetName).Activate
End Sub

 

2番目にシートを選択(アクティブに)する

複数のシートが存在し、その中で2番目にあるシートを選択(アクティブに)する

Sub SheetActiveTest3()
    Sheets(2).Activate
End Sub

 

2つ以上のシートが存在しないとエラーになります
シートが2つ以上存在するか判断して、存在する場合は、その中で2番目にあるシートを選択(アクティブに)する

Sub SheetActiveTest4()
    If Sheets.Count >= 2 Then
        Sheets(2).Activate
    Else
        MsgBox “シートは2つ以上存在しません”
    End If
End Sub

 

注意

「Sheets(“aaa”).Activate」とシート名で指定する場合、「aaa」のシートが別のブックの場合、先に該当のブックをActivateしておかないとエラーになります。

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします