
ActiveSheet
と Worksheets("〇〇")
の違いって何?
どっちを使えば正しいの?
実務での使い分け方は?
結論:ActiveSheetは「現在アクティブなシート」、Worksheetsは「特定のシートを明示的に指定」



この違いを理解していないと、別シートに処理したつもりが、現在表示されているシートに誤って処理してしまうなど、思わぬトラブルの原因になります。
目次
ActiveSheetとは?
今表示されている(選択されている)シートのこと。
ActiveSheet.Range("A1").Value = "こんにちは"



このコードは、現在アクティブになっているシートのA1セルに文字を書き込む処理です。
Worksheetsとは?
名前やインデックス番号で特定のシートを指定する方法。
Worksheets("集計").Range("A1").Value = "こんにちは"



このコードは、「集計」という名前のシートのA1セルに文字を書き込む処理です。
使用例と違い
用途 | ActiveSheet | Worksheets |
---|---|---|
今見ているシートに処理 | ✅ 適している | ⚠️ 明示しない限り不確実 |
特定のシートに処理 | ❌ 危険(変更される可能性あり) | ✅ 安全で明確 |
シートが切り替わっても影響しない処理 | ❌ 影響される | ✅ 安定 |
実務でよくある誤解とトラブル
❌ 誤解・失敗例
ActiveSheet.Range("B2").Value = "売上合計"



本来「集計」シートに書き込むつもりが、ユーザーが「入力」シートを開いていると、意図しない場所に書き込んでしまう。
✅ 対策例
Worksheets("集計").Range("B2").Value = "売上合計"



シート名を明示することで、どんな状況でも正しいシートに処理が行われる。
正しく使い分けるためのポイント
ポイント | 内容 |
---|---|
一時的なユーザー操作を前提としない | ActiveSheetは動的なので、他の人の操作で変わるリスクあり |
繰り返し処理や複数シート処理は Worksheets を使う | 例:ループで全シート処理するなど |
明示は安全 | 誤操作を防ぐには、「どこに処理するのか」を明確に記述することが重要 |
まとめ
ActiveSheet = 今表示されているシート(変動する)
Worksheets(“名前”) = 名前や順番で指定したシート(変わらない)



迷ったらWorksheetsで明示的に指定するのが安全です。
コメント