オフィスワーク・事務あるある!VBAでExcelとWordを連携させる方法【サンプル有り】

はじめに

「Excelで作成した帳票の内容をWprd文書の特定の場所に自動で差し替えたい!」などと思ったことはないでしょうか?

Excelは表計算ソフトとして帳票や一覧形式でのデータ管理に向いていますが、一つ一つの文書形式などを作成するのにはWordを使うことが多いと思います。

なので、Excelに入力したのと同じ内容をWord文書に手作業のコピペを繰り返して就業時間オーバーしてしまった、、などということはないでしょうか?

たかがコピペ、されどコピペでこの作業のある無しであなたのオフィスワークの充実感が全く違う物になるのではないでしょうか?

VBAでExcelとWordを連携させる方法を紹介する本記事の目的

本記事ではまずExcel側のVBAマクロでWord文章を開く方法をご紹介します。

この処理を経た後に、Excel側からWord文書の特定の項目へ入力内容を飛ばす方法を考えます。

急がば回れで、まずはシンプルにWord文書を開くところまでをマスターしましょう!

VBAでExcelとWordを連携させる方法を実行する処理の流れ

処理の流れとしてはまずWord.Applicationオブジェクトを宣言します。

→その後CreateObjectでWord.Applicationオブジェクトを作成します。

→可視化の手順を経て、エクセルファイルと同一ディレクトリにある”MyWord01.docx”というWord文書ファイルを開きます。

コード内のコメントを参照しながらだと処理を追いやすいでしょう。

VBAでExcelとWordを連携させる方法に使用する関数・プロパティなど

以下のApplicationオブジェクトとCreateObjectの手続きについて押さえておきましょう。

Application オブジェクト (Word)

CreateObject 関数
CreateObject(class, [ servername ])
class 必須。Variant (String)。 作成するオブジェクトのアプリケーション名とクラス。
servername 省略可能。Variant (String)。 オブジェクトを作成するネットワーク サーバーの名前。 servername は、空の文字列 (“”) である場合、ローカル コンピューターが使用されます。

 

VBAでExcelとWordを連携させる方法のサンプルコード

Sub OpenWord()

   Dim myword As Word.Application         'WordApplicationオブジェクトを宣言
   Set myword = CreateObject("Word.Application")  'WordApplicationオブジェクト作成
   myword.Visible = True              'WordApplicationオブジェクトを可視化
   '指定のパスにある MyWord01.docx Wordオブジェクトを開く
   Set mydoc = myword.Documents.Open(ThisWorkbook.Path & "\MyWord01.docx")

End Sub

終わりに

本記事ではシンプルにExcelからVBAマクロでWord文書ファイルを開く方法をご紹介しました。
この方法にテキスト検索や置換を組み合わせることでExcelとWordを連携させる事ができ、日々のコピペ作業から開放される道筋が見えるかもしれません。