【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

Sheetsコレクション

名称Sheetsコレクション
説明
ブック内のすべてのシートの集合体です。

Excelには、「ワークシート」「グラフシート」「マクロシート」「ダイアログシート」の4種類が存在し、これらすべてのシートがSheetsコレクションに含まれます。

例えば、アクティブブック内にシート「Sheet1」「Sheet2」、グラフシート「Graph1」が存在する場合、すべてSheetsコレクションに含まれます。

Sheetsコレクション内の特定のシートを操作する場合は、Sheetsコレクションにシート名やブック内のシートの位置を表す番号を指定します。

例えば、アクティブブック内のシート「Sheet1」を操作したい場合は、「Sheets("Sheet1")」と記述します。

個々のシートはSheetオブジェクトで表され、「Sheets("Sheet1")」は、シート「Sheet1」というSheetオブジェクトを表します。

【比較】
Worksheetsコレクションは、ブック内のワークシートのみの集合体です。

現在では、Excelの4種類のシートのうち、ワークシート以外はほぼ使用されていないため、現実的には、SheetsコレクションとWorksheetsコレクションを使い分ける必要はほとんどありません。
書式
【個別のシートを指定①】
Sheets(シート名)

シート名は「Sheets("Sheet1")」のように、シート名をダブルクォーテーションで囲みます。

【個別のシートを指定②】
Sheets(数値)

数値:シートの位置を表す数値

シートの位置を表す数値は、ブック内で左から順に1から番号が振られ、表示、非表示にかからわず番号が振られます。
この数値は、単にそのシートが「左から何番目にあるか」を示しているに過ぎず、シートの位置が移動すれば番号も変わります。
コード例①
【個別のシートを指定:シート名】
Sub Macro1()
    Sheets("Sheet1").Activate
End Sub

アクティブブックのシート「Sheet1」をアクティブにします。
コード例②
【個別のシートを指定:シートの位置を表す番号】
Sub Macro1()
    Sheets(1).Activate
End Sub

アクティブブックの1番目(左端)のシートをアクティブにします。
コード例③
【ブック内の全てのシートを操作】
Sub Macro1()
    Dim ws As Object
    
    For Each ws In Sheets
        MsgBox ws.Name
    Next
End Sub

アクティブブック内の全てのシートの名前をメッセージボックスに表示します。

Sheetsコレクションには4種類のシートが存在し、シート型(Sheet)は存在しないため、変数wsはオブジェクト型で宣言します。

アクティブブック内にワークシート「Sheet1」「Sheet2」、グラフシート「Graph1」が存在する場合、For Each…Nextステートメントは以下のように処理されます。
ws = ワークシート「Sheet1」→ 「Sheet1」のメッセージボックスを表示
ws = ワークシート「Sheet2」→ 「Sheet2」のメッセージボックスを表示
ws = グラフシート「Graph1」→ 「Graph1」のメッセージボックスを表示
カテゴリベーシック