
Sheets
と Worksheets
の違いが分からない…
どちらを使えばエラーにならない?
実務での使い分けのコツが知りたい!
結論:Sheetsは「すべてのシート」、Worksheetsは「ワークシートだけ」
目次
Sheetsとは?
ブック内のすべてのシート(ワークシート、グラフシート、その他)を扱うオブジェクトです。
Sheets(1).Select



ワークシートであるとは限らず、グラフシートが先頭にあればそれを選択します。
Worksheetsとは?
ブック内のワークシートだけを対象にするオブジェクトです。
Worksheets(1).Select



必ず通常のワークシートを指します。
Chart Sheet はカウントされません。
実際に使い分ける必要があるケース
シート構成 | Sheets | Worksheets |
---|---|---|
通常のワークシートのみ | ✅ どちらも使用可能 | ✅ 使用可能 |
グラフシートが含まれる | ⚠️ 意図しない挙動あり | ✅ 安定 |
シートの数を数える | ❗ ワークシート以外も含む | ✅ ワークシートだけカウント |
使用例で比較してみよう
Sheetsを使った例
Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Select MsgBox Sheets(i).Name Next i



グラフシートがあると Sheets(i).Select
で意図しないシートが選ばれる可能性。
Worksheetsを使った例
Dim i As Integer For i = 1 To Worksheets.Count Worksheets(i).Select MsgBox Worksheets(i).Name Next i



ワークシートのみを対象にしているので、処理が安定します。
Sheetsを使うとエラーになるケース
以下のような処理は Sheets
を使うとエラーや想定外の挙動を引き起こします。
❌ エラーの例(Chart Sheetに対してセル操作)
Sheets("グラフ1").Range("A1").Value = "テスト" ' → エラー
グラフシートにはセルが存在しないため、Range指定ができません。
まとめ:基本はWorksheetsを使うべし!
Sheets
は「すべてのシート」、Worksheets
は「通常のシートのみ」
グラフシートなどが含まれる場合は、Sheets
を使うとエラーの原因に
安定した処理をしたいなら、基本は Worksheets
を使うのがベスト
コメント