ExcelWord連携の基本――ExcelからWordを開く、WordからExcelを起動させる:VBA/マクロ便利Tips(2/2 ページ)
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回からExcelとWordを連携するテクニックを紹介していく。初回は連携の基本としてExcelからWordを開く方法と、WordからExcelを開く方法を解説する。
WordからExcelを起動させる
次に、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)。
VBEでVBAコードを記述する
「デザインモード」の状態で、「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にマクロが含まれる場合の拡張子は「.docm」
ここで、今作成した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.
関連記事
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。スクショをExcelに張り付けるのに役立つ4つのテクニック
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。後編は、画像ファイルをシートに張り付け、Excel 2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。[Esc]キーによるExcel VBAの実行中断を防止する
ExcelではVBA(Visual Basic for Applications)によってさまざまな処理を自動的に実行できる。しかし、VBAの実行中にユーザーが[Esc]キーあるいは[Ctrl]+[Break]キーを押すと、自動処理が止まってしまう。止めたくない場合は、Application.EnableCancelKeyプロパティの設定を変更する。- Windows TIPSディレクトリ > プラットフォーム別 > Office > Excel