9. ブックの操作−ブックオブジェクトの参照  

Excelのブックも1つのオブジェクトとしてVBAから操作できるようになっています。
ブックのオブジェクトが保有するメソッドやプロパティには、ブックの保存や読み出し、ユーザー情報や共有設定など、いろいろな機能を操作するものが用意されています。
また、ブックにもイベントが用意されており、ブックを開いたときやシートが再計算されたとき、ウィンドウサイズが変更されたときなど、多くのイベントに対応した処理を組み込むことができます。
まずは、ブックをオブジェクトとして参照する操作に必要なプロパティを紹介します。
 

@ ブックをオブジェクトとして参照する
 
書式 使用例
ブックは、単体ではWorkbookオブジェクトとして操作しますが、Excelは複数のブックを同時に開いて操作できますので、Workbooksコレクションにも所属します。したがって、単体のブックを操作する場合は、ApplicationオブジェクトのWorkbooksプロパティを使用し、引数にブック名を記述して指定します。この時、ブックのファイル名は拡張子「xls」まで記述します。 Application.Workbooks("ブック名") *【Application】は省略可

【属性】 プロパティ
【所属オブジェクト】 Application
【操作対象オブジェクト】 Workbooksコレクション

<記述例>
Workbooks(1)
Workbooks("MyData.xls")

<使用例 ブック「MyData1.xls」をアクティブにする>
Workbooks("MyData1.xls").Activate

 

A アクティブなブックの把握 書式 使用例
複数のブックを開いている場合、現在アクティブなブックを把握するには、ApplicationオブジェクトのActiveWorkbookプロパティを使用します。 Application.ActiveWorkbook *【Application】は省略可

【属性】 プロパティ
【所属オブジェクト】 Application
【操作対象オブジェクト】 Workbook

<記述例>
ActiveWorkbook.Close

<使用例 アクティブなブックを閉じる>
ActiveWorkbook.Close

 

B ブックをアクティブにする 書式 使用例
現在開いているブックの中で、特定のブックをアクティブにしたい場合は、WorkbookオブジェクトのActivateメソッドを使用します。
対象オブジェクトに、アクティブにしたいブック名をWorkbooksプロパティで指定し、メソッドを実行すると、そのブックがもっとも手前に表示されます。
Object.Activate

【属性】 メソッド
【所属オブジェクト】Workbook
【操作対象オブジェクト】 Workbook

<記述例>
Workbooks("Book1.xls").Activate

<使用例 ブック「Book1.xls」をアクティブにする>
Workbooks("Book1.xls").Activate

 

C 自分自身を把握する 書式 使用例
自分自身を参照するプロパティで、現在実行中のマクロコードが記述されているブックを返します。
アドインなどは、ActiveWorkbookプロパティで自分を参照することができない場合などは、このプロパティを使用します。
Application.ThisWorkbook

【属性】 メソッド
【所属オブジェクト】 Worksheet
【操作対象オブジェクト】 Worksheet、Range

<記述例>
ActiveSheet.PrintOut
Worksheets("Sheet1").PrintOut

 

<使用例 マクロ実行中のブック名を表示する>
MsgBox Application.ThisWorkbook.Name
 

 

D ブックのパス名を取得する 書式 使用例
現在開いているブックのパス名を取得するには、WorkbookオブジェクトのPathプロパティを使用します。
対象オブジェクトにActiveWorkbookプロパティを使用すれば、現在アクティブなブックのパスを、Workbooksプロパティでブック名を指定すればそのブックが保存されているフォルダのパス名を表示します。
Pathプロパティには、ブックが保存されているドライブ名とフォルダが「:」と「\」記号で区切られて、文字列として格納されます。また、フォルダの中に更にフォルダがある場合は、「\」記号で下層のフォルダを結合して表示されます。
次のパス名は、ドライブ「F」にあるフォルダ「GENKOU」の、更に3階層下のフォルダに格納されていることを示しています。

<例> F:\GENKOU\VB Magazine\1999\99-04
 

 

 

Object.Path

【属性】 プロパティ
【所属オブジェクト】 Workbook
【操作対象オブジェクト】 Workbook

<記述例>
ActiveWorkbook.Path
Workbooks("MyData1.xls").Path

<使用例 現在アクティブなブックのパス名を取得する>
ActiveWorkbook.Path

<使用例 開いているブック「MyData1.xls」が保存されているパスの取得>
Workbooks("MyData1.xls").Path

 

 

著作・制作   瀬戸 遥   2004/04.