Workbookオブジェクト(前半)
Workbookオブジェクトについての解説になります。
オブジェクトとはエクセルのワークブック・ワークシート・セル・グラフ・オートシェイプなど、操作の対象となるもののことを言います。また、複数のオブジェクトの集合体はコレクションと呼ばれます。
例えば、以下の図で説明すると、ワークブック・ワークシート・セルはオブジェクトですが、ワークシート全体はコレクションとなります。
目次
- 【前半】
- Workbookオブジェクトとは
- Workbookオブジェクトを取得する方法
- Workbooksプロパティを利用してブックをアクティブにするサンプルコード
- ActiveWorkbookプロパティを利用してブックを閉じるサンプルコード
- ThisWorkbookプロパティを利用してブックの名前を取得するサンプルコード
- Workbookオブジェクトの親オブジェクト一覧
- Workbookオブジェクトの子オブジェクト一覧
- 【後半】
- Workbookオブジェクトのプロパティ一覧
- Workbookオブジェクトのメソッド一覧
- Workbookオブジェクトのイベント一覧
- Workbookオブジェクトの関連記事
Workbookオブジェクトとは
Workbookオブジェクトは、Excelのブックを表します。
Workbookオブジェクトを取得する方法
Workbookオブジェクトを取得するには以下のプロパティを使用します。
Workbooksプロパティを利用してブックをアクティブにするサンプルコード
今回のVBAコードはWorkbooksプロパティを利用してExcelブックをアクティブにするマクロになります。
Workbooksプロパティを利用してWorkbookオブジェクトを取得する場合は、以下のように記述します。引数indexには「インデックス番号」と「ブック名」のどちらかを設定します。
Workbooks(index)
Sub sample()
Workbooks("Book1").Activate
End Sub
実行結果
Book1ブックをアクティブにします。
解説
こちらはSubステートメントに引数の設定がないsampleプロシージャになります。まず、Workbooksコレクションの中から特定のWorkbookオブジェクトを取得するためにWorkbooksプロパティを利用します。
Workbooksプロパティには「Book1」のブック名を設定していますので、Book1ブックのオブジェクトを取得します。今回はブック名で設定しましたが、最初に開いたブックを1として連番で割り振られるインデックス番号でも設定できますので、覚えておきましょう。
Workbooks(1)
次にWorkbookオブジェクトにActivateメソッドを設定します。WorkbookオブジェクトのActivateメソッドはブックをアクティブにするメソッドですので、Book1ブックをアクティブにします。
処理が完了したら最後はEndステートメントを利用してsampleプロシージャを終了させます。
ActiveWorkbookプロパティを利用してブックを閉じるサンプルコード
今回のVBAコードはActiveWorkbookプロパティを利用してExcelブックを閉じるマクロになります。
Sub sample()
ActiveWorkbook.Close
End Sub
実行結果
一番手前に表示されているブックが閉じます。
解説
まず、ActiveWorkbookプロパティを利用して一番手前に表示されているブックのオブジェクトを取得します。
次にWorkbookオブジェクトにCloseメソッドを設定します。WorkbookオブジェクトのCloseメソッドは指定したブックを閉じるメソッドですので、一番手前に表示されているブックを閉じます。
今回のCloseメソッドには、引数が設定されていませんので、ブックに変更がない場合はそのままブックを閉じます。ただし、ブックに変更があった場合は以下のように変更したファイルを保存するかどうかを確認するダイアログボックスが表示されますので注意が必要です。
ThisWorkbookプロパティを利用してブックの名前を取得するサンプルコード
今回のVBAコードはThisWorkbookプロパティを利用してExcelブックの名前を取得するマクロになります。
Sub sample()
MsgBox "ブックの名前は" & ThisWorkbook.Name & "です。"
End Sub
実行結果
解説
まず、ThisWorkbookプロパティを利用して現在実行中のマクロコードが記述されているブックのオブジェクトを取得します。
次にWorkbookオブジェクトにNameプロパティを設定します。WorkbookオブジェクトのNameプロパティは指定したブックの名前を取得するプロパティですので、現在実行中のマクロコードが記述されているブックの名前を取得します。
ブック名を取得したら文字列連結演算子の「&(アンバサンド)」を利用して文字列を結合させます。そして結合された文字列はMsgBox関数の引数に設定します。
MsgBox関数は、ダイアログボックスに指定した文字列を表示させるVBA関数ですので、今回の処理では「ブックの名前はBook1です。」のダイアログボックスが表示されます。
Workbookオブジェクトの親オブジェクト一覧
親オブジェクト名 | 内容 |
---|---|
Applicationオブジェクト | Excelアプリケーション全体を表します。 |
Workbooksコレクション | 現在、開いているすべてのWorkbookオブジェクトのコレクションです。 |
Workbookオブジェクトの子オブジェクト一覧
子オブジェクト名 | 内容 |
---|---|
Chartオブジェクト | ブック内のグラフを表します。 |
CustomViewsコレクション | ブックのユーザー設定のビューを表すCustomViewオブジェクトのコレクションです。 |
Mailerオブジェクト | Macintoshでのみ使用されます。 |
Namesコレクション | アプリケーションまたはブックにあるすべてのNameオブジェクトのコレクションです。 |
PublishObjectsコレクション | ブックに含まれるすべてのPublishObjectオブジェクトのコレクションです。 |
RoutingSlipオブジェクト | ブックの回覧先を表します。 |
Sheetsコレクション | 指定されたブックまたは作業中のブックにあるすべてのシートのコレクションです。 |
SmartTagOptionsオブジェクト | スマートタグで実行できるオプションを表します。 |
Stylesコレクション | 指定されたブックまたは作業中のブックにあるすべてのStyleオブジェクトのコレクションです。 |
DefaultWebOptionsオブジェクト | ドキュメントをWebページとして保存するとき、またはWebページを開くときにExcelで使用する、アプリケーションレベル全体での属性が含まれています。 |
Windowsコレクション | ExcelのすべてのWindowオブジェクトのコレクションです。 |
XmlMapsコレクション | ブックに追加されているXmlMapオブジェクトのコレクションを表します。 |
XmlNamespacesコレクション | ブック内のXmlNamespaceオブジェクトのコレクションを表します。 |
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。