参考元:大体でIT | Excel VBA
https://daitaideit.com/vba/#mokuzi3
【VBA】シートの指定方法4選【アクティブシート、シート名、シートインデックス、シートオブジェクト】
シートを指定する方法を4つご紹介します。
アクティブシートを指定
シート名を使う
シートインデックスを使う
シートオブジェクトを使う
という感じになります。
Sub TEST1()
'アクティブシートに入力
ActiveSheet.Range("A1") = "ABC"
'「ActiveSheet」は省略すると、アクティブシートに入力
Range("A1") = "ABC"
'アクティブシートの「左」のシートに入力
ActiveSheet.Previous.Range("A1") = "ABC"
'アクティブシートの「右」のシートに入力
ActiveSheet.Next.Range("A1") = "ABC"
-----------------------------------------
'シート名が「Sheet2」のシートに入力
Worksheets("Sheet2").Range("A1") = "ABC"
'「Sheets」に短縮できる
Sheets("Sheet2").Range("A1") = "ABC"
-----------------------------------------
'「2番目」のシートに入力
Sheets(2).Range("A1") = "ABC"
-----------------------------------------
'シートオブジェクト「Sheet2」に入力
Sheet2.Range("A1") = "ABC"
End Sub
作業シートを使う場合は「アクティブシート」から指定
例:作業シートを使って計算をする
Private Sub CommandButton1_Click()
Dim A
Sheets.Add 'シートを追加
'アクティブシートの「右」のシートから値をコピー
ActiveSheet.Next.Range("A1").Copy ActiveSheet.Range("A1")
ActiveSheet.Range("A1") = ActiveSheet.Range("A1") + 1 '1を足す
A = ActiveSheet.Range("A1") '値を取得
Application.DisplayAlerts = False
ActiveSheet.Delete 'シートを削除
Application.DisplayAlerts = True
Range("A1") = A '値を入力
End Sub
例2:シート名を取得するVBAコードです。
Sub TEST12()
'最終行までループ
For i = 1 To Sheets.Count
'シート名を出力
Debug.Print Sheets(i).Name
Next
End Sub