
はじめに
「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の手続きについて押さえておきましょう。
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を連携させる事ができ、日々のコピペ作業から開放される道筋が見えるかもしれません。