パソコン悪戦苦闘記録

Word文書を開くマクロ(いよいよVBAの具体例)

 これまで、Wordマクロの基本に関する記事を書いてきました。

  「マクロとは何ぞや?Wordマクロ入門」

  「マクロを記述するツール・VBエディター」

  「Wordマクロの基礎の基礎・オブジェクトとプロパティ」

  「Wordマクロの基礎の基礎・メソッド」

  「Wordマクロ 処理対象の特定(VBAの基礎)」

  「Wordマクロの自動記録機能」

などなど・・・・・。




 今回はこれまでのことを基礎にして、Wordマクロの具体例を取り上げます。
 新規Word文書(Document)作成や、保存されている文書を開くマクロです。

【第1】 新規文書を作成する。
 新規文書を作成するときには、Documentsコレクションに対してAddメソッドを使います。Addメソッドは、コレクションに新しいメンバーを追加するメソッドです。

そのマクロコードは、次のとおりとなります。

Sub 文書作成()
  Documents.Add
End Sub
 

【第2】 文書を開く
 文書を開くときには、保存場所を文書名に含めて開く方法と、あらかじめカレントフォルダを変更してから、そのカレントフォルダにある文書を開く方法の2種類があります。

 1 保存場所を特定して文書を開く
 保存されている文書を開くときには、Documentsコレクションに対してOpenメソッドを使います。
 次のプロシージャは、「D:¥WordVBA」フォルダの中の「Hoge.docx」文書を開きます。

Sub 文書開く1()
  Documents.Open FileName:= "D:¥WordVBA¥Hoge.docx"
End Sub


 このように、文書名の前に、ドライブ名とフォルダ名(パス)を指定します。
 なお、上記で「¥」は全角文字を使っているのですが、実際のマクロコードには半角文字で記述します。

 2 カレントフォルダの文書を開く
 カレントフォルダとは、現在選択されているフォルダのことです。
 カレントフォルダに保存されている文書を開くときには、ドライブ名やフォルダ名を省略できます。
 次のプロシージャは、カレントフォルダの中の「Hoge.docx」文書を開きます。

Sub 文書開く2()
  Documents.Open FileName:= "Hoge.docx"
End Sub


 このようにカレントフォルダの文書を開くには、ドライブ名やフォルダ名(パス)を指定する必要がありません。
 (なお、カレントフォルダの文書を開くときでも、保存場所を記述することは支障ありません。)

【第3】 なぜコレクションなのか。
 文書を開く場合、開くのは単体の文書なので、コレクションでなくDocumentオブジェクトに対してOpenメソッドを使うのが正しいと思いがちです。
 つまり、
   Documents("Hoge.docx").Open
と、つい書いてしまいます。
 しかし、これは誤りです。
 VBAでは、あくまで「文書を開くとは、Documentsコレクションに新メンバーが加わることである」と解釈しています。よって、Documentsコレクションに対してOpenメソッドを使用するのです。開く文書名は、FileName引数に指定することになります。

Anker USB3.0 ウルトラスリム 4ポートハブ 【USB3.0高速ハブ / バスパワー/軽量/コンパクト】
Amazon価格:¥1,399
Anker


それでは、また次の記事で。

《2019年11月5日追記》
   文書を閉じるマクロの記事も書きました。
    こちらの記事をご覧ください。
名前:
コメント:

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

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

 

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

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

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