VBAとは、ExcelマクロやWordマクロを作るためのプログラミング言語です。最近はVBAでマクロを作ることをしていないので、VBAの書き方を忘れています。基本中の基本、基礎の中の基礎なども、あやしくなっています。
今回、改めて復習した基礎的知識があります。
それは、
保存しているExcelワークブックを開く操作
保存しているWord文書を開く操作
のコードです。
![](https://blogimg.goo.ne.jp/user_image/61/52/5c1137d39b3fd32b1bd16540c3d6be1b.jpg)
ワークブックを開くVBAコードは、
Workbooks.Open Filename: = "D:¥Hoge.xlsx"
文書を開くVBAコードは、
Documents.Open Filename: = "D:¥Hoge.docx"
です。
上記の
Workbooksは、現在開かれているすべてのブック(Excelファイル)のコレクション(集合体)のこと、
Documentsは、現在開かれているすべての文書(Wordファイル)のコレクション(集合体)のこと
です。
ここで、
「あれれ?なんで?」
って、疑問が出てきました。
やろうとしているのは、保存しているブックや文書のOpenです。開いていない既存ファイルを開く操作です。
すでに開かれているブックや文書を開くわけではない。つまり、操作対象は、開かれているファイルではありません。
なのに、
なぜ、現在開かれているブック全体を指すWorkbooksのOpenなのか
なぜ、現在開かれている文書全体を指すDocumentsのOpenなのか
って、疑問になったのです。
答えは、オブジェクトブラウザーを見れば解決します。
Openメソッドは、Workbooksコレクションや、Documentsコレクションのメンバーなのです。
Workbooksコレクションに用意されているメソッド、Documentsコレクションに用意されているメソッド、です。
私が、「なんで?」って言ったって、そのように決められています。抵抗の余地はありません。
現在開かれているファイルのコレクションに、新たにファイルを開いて、コレクションにファイルを加える、それが、
Workbooks.Open
Documents.Open
というわけです。
そう理解すれば納得できるし、覚えることもできます。
このことは、ファイルを新規に開く操作「Add」も同じです。
新規ファイルを開く操作は、
Workbooks.Add
Documents.Add
と書きます。
これも、Workbooksコレクションに新規ブックを追加する、Documentsコレクションに新規文書を追加する、って理解すればよいわけです。
それでは、また次の記事で
■■■■ goosyun ■■■■
![](https://blogimg.goo.ne.jp/user_image/1f/88/100bd06d901e04ad321a22f00b401819.png)