VBAのSheetsとWorksheetsの違い

SheetsコレクションとWorksheetsプロパティの違い

ワークシートを参照する際に、SheetsコレクションやWorksheetsプロパティを利用します。

SheetsとWorksheetsの違いは、Sheetsコレクションはワークシート、グラフシート、マクロシート、ダイアログシートの4種類全てのシートを対象としますが、Worksheetsプロパティはワークシートのみを対象とする点です。

多くの場合はワークシートのみのブックが大半だと思われるため、SheetsでもWorksheetsでも同じ結果が得られるとは思いますが、厳密にワークシートのみに限定したい場合はWorksheetsプロパティを利用します。

以下の2つのコードはどちらも全シートを参照する関数です。SheetsかWorksheetsかの違いだけです。

サンプルコード

Sheetsコレクションを使ったサンプルコードです。

Worksheetsプロパティを使ったサンプルコードです。

実行結果

上の2つの関数の違いは4行目のSheetsとWorksheetsのみですが、実行すると結果が異なります。

2つの関数を以下のようにグラフシート、ワークシート、マクロシート、ダイアログシートの4種類があるブックを用意します。

そして上の2つの関数をそれぞれ実行すると以下のような結果になります。

1つ目(SheetsTest)の結果

Graph1(グラフシート)
Sheet1
Macro1(マクロシート)
Dialog1(ダイアログシート)
Sheet2

2つ目(WorksheetsTest)の結果

Sheet1
Sheet2

この結果の通り、Sheetsコレクションはブックに含まれる全てのシートを対象としますが、Worksheetsプロパティはワークシートのみを対象とします。

SheetsとWorksheetsのどちらを使った方がよいか

ワークシートのみのブックの場合はSheetsとWorksheetsのどちらを使っても構いません。

4種類のシートがあるブックの場合に、ワークシートのみをマクロで処理する場合はWorksheetsプロパティ、そうでない場合はSheetsコレクション、という分け方になります。

なお、私自身はグラフシート、マクロシート、ダイアログシートを使うことが無いことと、将来もまず使わないとわかっているため、Sheetsコレクションを使うことが多いです。

さらに、キーボードの入力がWorksheetsよりもSheetsと書いた方がラクという点もあります。

関連記事

サブコンテンツ

このページの先頭へ