シートの操作


Excelの解説本などでは「シート」と「ワークシート」が混在して使われています。ほとんどの場合は、「シート=ワークシート」と認識して間違いはありませんが、厳密に言うとイコールではありません。シートには次の種類があるからです。

  • ワークシート
  • グラフシート
  • Excel 5.0/95のモジュールシート
  • Excel 5.0/95のダイアログシート
  • Excel 4.0のマクロシート

ワークシートは説明するまでもありませんね。グラフシートとは、グラフを表示する専用のシートです。グラフ ウィザードの最後でグラフの作成場所を聞かれますが、このとき「新しいシート」を選択すると自動的にグラフ シートが挿入されます。モジュールシートやダイアログシートは、現在のVBAが実装される前に使われていたExcel 5.0/95マクロで使用したシートです。マクロシートは、Excel 4.0のマクロを記述するための専用シートです。これらのシートが存在することは、シート見出しを右クリックして[挿入]を実行するとわかります。

まぁ、VBAで操作するシートはほとんどがワークシートでしょうから、特別に意識する必要もないでしょう。ここでも、特に断らない限り「シート=ワークシート」と読んでください。

ちなみに「シート」はSheetsコレクション、「ワークシート」はWorksheetsコレクションです。上で書いたように「ワークシートはシートの一部」ですから、ワークシート[Sheet1]を指定するとき

Sheets("Sheet1")

Worksheets("Sheet1")

は同じ意味になります。両者を区別しなければならないのは、グラフシートを扱うケースなどです。グラフシート[Graph1]があったとき、Sheets("Graph1").Selectは正常に機能しますが、Worksheets("Graph1").Selectはエラーになります。当たり前ですね(^^; なお、普通のマクロ記録ではSheetsが記録されます。

ちなみに、SheetsとWorksheetsで注意しなければならないのは、

For i = 1 To Sheets.Count

For Each S In Worksheets

のように、コレクションとして指定する場面です。シートを特定する「Sheets("Sheet1")」や「Worksheets(1)」では、気にする必要はないでしょう。