次に、WordからExcelを起動させてみよう。
事前に「C:\Excel2013Data」というフォルダーを作成して、「Wordから起動させたExcel.xlsx」というExcelのファイルを配置しておく必要があるので、注意してほしい。
開くExcelには適当に何かデータを入力しておいてほしい。
Wordを起動して、新規文書上を作る。Wordメニューの「開発」→「コントロール」→「デザインモード」をクリックする。図4のアイコンをクリックして「コマンドボタン」を配置する。
Wordのメニューに「開発」メニューが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザ設定」から、図5のように「開発」にチェックを入れると、Wordのメニューに「開発」タブが表示される。Wordのデフォルトでは、この「開発」メニューは表示されていないので、この手順で追加してほしい。
「コマンドボタン」を選択すると、Word文書上に「CommandButton1」が配置されるので、「CommandButton1」を選択して、マウスの右クリックで表示されるメニューから「プロパティ」を選択する。
「Caption」に「Excel2013起動」と指定し、「Font」を選択して、「フォント名」に「Meiryo UI」、「スタイル」に「太字」、「サイズ」に「14」と指定しておく(図6)。
「デザインモード」の状態で、「Excel2013起動」ボタンをダブルクリックすると、VBEが起動するのでVBAのコードを記述する。
Private Sub CommandButton1_Click() Dim ExcelFilename As String ExcelFilename = "C:\Excel2013Data\Wordから起動させたExcel.xlsx" With CreateObject("Excel.Application") .WorkBooks.Open ExcelFilename .Visible = True End With End Sub
文字列型のExcelFilename変数を宣言し、「C:\Excel2013Data\Wordから起動させたExcel.xlsx」という完全パス付きExcelのファイル名を格納する(2〜3行目)。
CreateObject関数でExcel.Applicationオブジェクトへの参照を作成する(4行目)。
Openメソッドで、ExcelFilenameに格納しているExcelのファイルを開く(5行目)。VisibleプロパティにTrueを指定して、Excelを表示する(6行目)。
Wordメニューの「開発」メニューにある「デザインモード」の選択をクリックして、「デザインモード」を解除する。
「Excel2013起動」ボタンをクリックすると、図7のようにExcelが起動して、指定したファイルが開かれる。
ここで、今作成したWordファイルを保存する。
Wordメニューの「ファイル」→「名前を付けて保存」と選択する。ファイル名には「Excel_Word連携VBA.docm」とする。
Wordにマクロが含まれる場合の拡張子は「.docm」になるので注意してほしい。
今回は、ExcelからWordを起動させたり、WordからExcelを起動させたりと、基本的な内容を解説した。次回からは、Excelの表やグラフをWordに貼り付けたり、また逆に、Wordの表をExcelに表示させたりといった連携方法について解説する。
薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。
1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。
2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。
Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
Microsoft MVP for Development Platforms - Windows Platform Development (Oct 2014-Sep 2015)。
Copyright © ITmedia, Inc. All Rights Reserved.