パソコン悪戦苦闘記録

なぜ開いているブックコレクションのOpen?

 昨夜、VBAのおさらいを、少しだけやりました。
 VBAとは、ExcelマクロWordマクロを作るためのプログラミング言語です。最近はVBAでマクロを作ることをしていないので、VBAの書き方を忘れています。基本中の基本、基礎の中の基礎なども、あやしくなっています。
 
 今回、改めて復習した基礎的知識があります。

それは、
 保存しているExcelワークブックを開く操作
 保存しているWord文書を開く操作
のコードです。





ワークブックを開く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
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事