業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回からExcelとWordを連携するテクニックを紹介していく。初回は連携の基本としてExcelからWordを開く方法と、WordからExcelを開く方法を解説する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
今回からExcel 2013(以下、Excel)とWord 2013(以下、Word)の連携VBA Tipsを数回に分けて紹介する。
今回は、連携の基本である、ExcelからWordを起動させる方法と、WordからExcelを起動させる方法を解説する。
まずは、ExcelからWordを起動させる方法だ。
事前に、「C:\Word2013Data」というフォルダーを作成して、その中に「Excelから起動させたWord文書.docx」を配置しておいてもらいたい。このWord文書をExcelから起動させるので、忘れないようにしていただきたい。このフォルダーとファイルが存在しないと、もちろんエラーになるので、注意してほしい。
開くWord文書には何か内容を適当に書いておいてほしい。
Excelを起動させて、「Sheet1」に、Excelメニューの「挿入」→「図形」と選択して、「角丸四角形」を配置する。「角丸四角形」を選択して、マウスの右クリックで表示されるメニューから「テキストの編集」を選択すると、「角丸四角形」内に文字の入力が可能になるので、「Word2013の起動」と入力する。
「角丸四角形」を選択状態にして、Excelメニューの「ホーム」にある、「フォントの種類」に「Meiryo UI」、「フォントサイズ」に「18」、「フォント太さ」に「太字」、「文字位置」に「中央揃え」を指定する(図1)。
ここで、現在作成中のExcelファイルを保存しておこう。
Excelメニューの「ファイル」→「名前を付けて保存」と選択する。ファイル名は「Excel_Word連携VBA.xlsm」としておく。
マクロが含まれる文書になるので、必ず拡張子は「.xlsm」という拡張子で保存しておく必要がある。この点は十分に注意しておこう。
Excelメニューの「開発」を選択すると、左端に「Visual Basic」のメニューが表示されるので、これをクリックする。するとVBE(Visual Basic Editor)の画面が表示される。
今回はExcelからWordを扱うので、「参照の設定」を行う必要がある。VBEのメニューから、「ツール」→「参照設定」と選択し、表示される画面から「Microsoft Word 15.0 Object Library」にチェックを入れる。
図2では、筆者がすでにチェックを付けているため、上位に「Microsoft Word 15.0 Object Library」が位置しているが、チェックをしていない場合は、下の方に表示されているので、探してチェックを入れる必要がある(図2)。
「OK」ボタンをクリックして、「参照設定」は完了だ。
VBEのメニューから、「挿入」→「標準モジュール」と選択する。すると、「プロジェクト」内に「Module1」が追加されるので、これを選択して、表示される画面内にリスト1のコードを記述する。
Sub Wordの起動() Dim myWord As Word.Document Set myWord = GetObject("C:\Word2013Data\Excelから起動させたWord文書.docx") myWord.Application.Visible = True End Sub
まずは、Word.Document型の変数myWordを宣言する(2行目)。
GetObjectメソッドでActiveXオブジェトへのを取得するファイル名を指定して、変数myWordにセットする(3行目)。
4行目で、GetObjectメソッドで参照したWord文書を表示する。
リスト1を、図1のボタンと関連付け実行すると、図3のようにWord文書が開く。
Copyright © ITmedia, Inc. All Rights Reserved.