Sub TEST1()
'アクティブシートに入力
ActiveSheet.Range("A1") = "ABC"
End Sub
実行すると、アクティブシートに入力できます。
アクティブシートに入力できました。
「ActiveSheet」を省略すると「アクティブシート」
「ActiveSheet」を省略すると、アクティブシートを指定することになります。
Sub TEST2()
'「ActiveSheet」は省略すると、アクティブシートに入力
Range("A1") = "ABC"
End Sub
「ActiveSheet」を省略して、アクティブシートを指定します。
「ActiveSheet」を省略して、アクティブシートを指定できました。
アクティブシートの左のシート
アクティブシートを起点にして、左のシートを指定するには「.Previous」を使います。
Sub TEST3()
'アクティブシートの「左」のシートに入力
ActiveSheet.Previous.Range("A1") = "ABC"
End Sub
「.Previous」を使って、アクティブシートの左のシートを指定できます。
実行すると、アクティブシートの左のシートに入力できます。
アクティブシートの左のシートに入力できました。
アクティブシートの右のシート
アクティブシートの右のシートを指定するには、「.Next」を使います。
Sub TEST4()
'アクティブシートの「右」のシートに入力
ActiveSheet.Next.Range("A1") = "ABC"
End Sub
「.Next」を使って、右のシートを指定することができます。
実行すると、アクティブシートの右のシートに入力できます。
アクティブシートの右のシートに入力できました。
シート名を使う
2つ目の指定方法の「シート名」を使って、シートを指定してみます。
シート名を使って指定
「シート名」を使って指定したい場合は、次のように入力します。
Sub TEST5()
'シート名が「Sheet2」のシートに入力
Worksheets("Sheet2").Range("A1") = "ABC"
End Sub
実行すると、シート名「Sheet2」に入力できます。
シート名「Sheet2」に入力できました。
「Sheets」で短縮してもOK
「Worksheets」を「Sheets」のように短縮してもできます。
Sub TEST6()
'「Sheets」に短縮できる
Sheets("Sheet2").Range("A1") = "ABC"
End Sub
実行すると、先ほどと同じようにシート名「Sheet2」を指定できます。
「Sheet2」に入力できました。
シートインデックスを使う
3つ目の方法で、シートインデックスを使って、シートを指定してみます。
シートの順番で指定
シートインデックスはシートの順番になります。
一番左のシートが、シートインデックス「1」になります。
「2番目」のシートを指定
「2番目」のシートを、シートインデックスを使って指定してみます。
Sub TEST7()
'「2番目」のシートに入力
Sheets(2).Range("A1") = "ABC"
End Sub
実行すると、「2番目」のシートに入力できます。
「2番目」のシートに入力できました。
シートオブジェクトを使う
4つ目の方法で、シートオブジェクトを使って、シートを指定してみます。
シートオブジェクト
シートオブジェクトは、VBE画面で確認できます。
VBA上のシートの名前みたいなものですね。
シートオブジェクトを使って指定
シートオブジェクトを使って、シートを指定するには次のように入力します。
Sub TEST8()
'シートオブジェクト「Sheet2」に入力
Sheet2.Range("A1") = "ABC"
End Sub
実行すると、「Sheet2」のシートオブジェクトに入力できます。
「Sheet2」のシートオブジェクトに入力できました。
シートの指定方法の使い分け
シートの指定方法の使い分けについてみてみましょう。
使い分けは、次のようになります。
アクティブシートを指定 →1つのシートのみ使う、作業シートを使う
シート名を使う →別シートに転記
シートインデックスを使う →シートをループ
シートオブジェクトを使う →シート名が変更される場合
では、それぞれみていきます。
1シートのみ使う場合は「アクティブシート」
1シートのみ使う場合は「アクティブシート」を使います。
1シートのみ使う場合は、「ActiveSheet」を省略して、セル範囲から記載します。
Sub TEST9()
'1シートのみを使う場合は、アクティブシートを指定
Range("A1") = "ABC"
End Sub
実行すると、アクティブシートに値を入力できます。
1シートのみ使用するときはアクティブシート
1シートのみの場合は、「ActiveSheet」を省略して、アクティブシートを指定します。
作業シートを使う場合は「アクティブシート」から指定
作業シートを使う場合も、「アクティブシート」を基準にして、指定します。
元シートを変更しないで、データの編集や加工をしたい場合に、作業シートを使います。
作業シートを使って計算をする
作業シートを使って、1を足してみます。
作業シートを使って、1を足すVBAコードです。
Sub TEST10()
Dim A
Sheets.Add 'シートを追加'アクティブシートの「右」のシートから値をコピー
ActiveSheet.Next.Range("A1").Copy Range("A1")
Range("A1") = Range("A1") + 1 '1を足す
A = Range("A1") '値を取得
Application.DisplayAlerts = False
ActiveSheet.Delete 'シートを削除
Application.DisplayAlerts = True
Range("A1") = A '値を入力
End Sub