Workbookオブジェクト(前半)

Workbookオブジェクトについての解説になります。

オブジェクトとはエクセルのワークブック・ワークシート・セル・グラフ・オートシェイプなど、操作の対象となるもののことを言います。また、複数のオブジェクトの集合体はコレクションと呼ばれます。

例えば、以下の図で説明すると、ワークブック・ワークシート・セルはオブジェクトですが、ワークシート全体はコレクションとなります。

VBAのオブジェクト

目次

Workbookオブジェクトとは

Workbookオブジェクトは、Excelのブックを表します。

Workbookオブジェクトを取得する方法

Workbookオブジェクトを取得するには以下のプロパティを使用します。

Workbooksプロパティを利用してブックをアクティブにするサンプルコード

今回のVBAコードはWorkbooksプロパティを利用してExcelブックをアクティブにするマクロになります。

Workbooksプロパティを利用してWorkbookオブジェクトを取得する場合は、以下のように記述します。引数indexには「インデックス番号」と「ブック名」のどちらかを設定します。

Workbooks(index)


Sub sample()

    Workbooks("Book1").Activate

End Sub

実行結果

Book1ブックをアクティブにします。

エクセルVBAでWorkbookオブジェクトのActivateメソッドを利用してブックをアクティブにする

解説

こちらは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

実行結果

エクセルVBAでThisWorkbookオブジェクトのNameプロパティを設定した結果

解説

まず、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オブジェクトのコレクションを表します。

 エクセルVBAのオブジェクト一覧 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

  • このエントリーをはてなブックマークに追加
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。