2.3 その他のシートも扱う
Excelにはワークシート、グラフシート、Excel 4.0マクロシート、Excel 5.0ダイアログシートの4種類のシートがあります。ワークシート以外のシートも扱うときは、Sheetsプロパティ(コレクション)を使ってシートを参照します。

なお、Sheetsにはコレクションとプロパティの2種類があります。また、ワークシートだけを扱うときはWorksheetsプロパティ(コレクション)を使います。(参照「2.2 ワークシート(Worksheetオブジェクト)」)
Sheetsコレクション
Sheetsプロパティは、ワークブック内の全てのシート(ワークシート、グラフ、Excel 4.0マクロ、Excel 5.0ダイアログ)が格納されているコレクションです。コレクションの中から必要なシートを指定するには、Sheetsの引数へシートの番号や名前を指定します。

 図1:番号で指定する場合
Workbookオブジェクト.Sheets(番号).プロパティやメソッド
Workbookオブジェクト
 Workbooks、ThisWorkbook、ActiveWorkbookを指定します。なお、Workbookオブジェクトは省略可能です。

番号
 シートの番号を数値で指定します。

【記述例1】1番目のシートを最前面に表示(アクティブに)する
ThisWorkbook.Sheets(1).Activate

 図2:シート名で指定する場合
Workbookオブジェクト.Sheets(ワークシート名).プロパティやメソッド
Workbookオブジェクト
 Workbooks、ThisWorkbook、ActiveWorkbookを指定します。なお、Workbookオブジェクトは省略可能です。

シート名
 シート名を文字列で指定します。

【記述例1】「Graph1」を最前面に表示(アクティブに)する
ThisWorkbook.Sheets("Graph1").Activate
Sheetsプロパティ
Sheetsプロパティは、ワークブック内のシートの個数を参照する、シートを追加・コピーするなど、シート全体を扱うためのプロパティです。

 図3:シート全体を操作する
Sheets.プロパティやメソッド
【記述例1】ワークブック内にあるシートの個数を変数へ保存する
lngSheetCount = Sheets.Count
ActiveSheetプロパティ
ActiveSheetプロパティは、現在最前面に表示されているシート(アクティブシート)を表すプロパティです。ワークシートが選択されているときはWorksheetオブジェクトを返し、グラフやExcel 4.0 マクロシートなどを選択しているときは、そのシートのオブジェクトを返します。

このプロパティは、複数のシートがある中からとにかく最前面に表示されているシートを操作したいときに使用します。

 図4:ActiveSheetプロパティ
Workbookオブジェクト.ActiveSheet.プロパティやメソッド
Workbookオブジェクト
 Workbooks、ThisWorkbook、ActiveWorkbookを指定します。なお、Workbookオブジェクトは省略可能です。

【記述例1】最前面に表示されているシートの名前を変数に保存する
strSheetName = ActiveSheet.Name
Workbookオブジェクトを省略したとき
Sheetsプロパティ、ActiveSheetプロパティでは、Workbookオブジェクトを省略することができます。ただし、マクロを記述した場所によって参照するWorkbookオブジェクトが異なることに注意してください。

 図5:Workbookオブジェクトを省略したとき
1.シートへ記述したとき
 記述したワークブックのWorkbookオブジェクトを参照します。

2.ThisWorkbookへ記述したとき
 記述したワークブックのWorkbookオブジェクトを参照します。

3.標準モジュール、クラスモジュール、ユーザーフォームへ記述したとき
 最前面に表示されているワークブックのWorkbookオブジェクトを参照します。
Copyright(C) 1999-2006 結城圭介。 All rights reserved