ExcelWord連携の基本――ExcelからWordを開く、WordからExcelを起動させるVBA/マクロ便利Tips(2/2 ページ)

» 2015年12月17日 05時00分 公開
[薬師寺国安PROJECT KySS]
前のページへ 1|2       

WordからExcelを起動させる

 次に、WordからExcelを起動させてみよう。

 事前に「C:\Excel2013Data」というフォルダーを作成して、「Wordから起動させたExcel.xlsx」というExcelのファイルを配置しておく必要があるので、注意してほしい。

 開くExcelには適当に何かデータを入力しておいてほしい。

ボタンの配置

 Wordを起動して、新規文書上を作る。Wordメニューの「開発」→「コントロール」→「デザインモード」をクリックする。図4のアイコンをクリックして「コマンドボタン」を配置する。

図4 「デザインモード」にして「以前のバージョンのフォーム」から「コマンドボタン」を選択する

 Wordのメニューに「開発」メニューが表示されていない場合は、「ファイル」→「オプション」→「リボンのユーザ設定」から、図5のように「開発」にチェックを入れると、Wordのメニューに「開発」タブが表示される。Wordのデフォルトでは、この「開発」メニューは表示されていないので、この手順で追加してほしい。

図5 Wordのメニューに「開発」メニューを追加する方法

 「コマンドボタン」を選択すると、Word文書上に「CommandButton1」が配置されるので、「CommandButton1」を選択して、マウスの右クリックで表示されるメニューから「プロパティ」を選択する。

 「Caption」に「Excel2013起動」と指定し、「Font」を選択して、「フォント名」に「Meiryo UI」、「スタイル」に「太字」、「サイズ」に「14」と指定しておく(図6)。

図6 「Excel2013起動」用の「CommandButton」を配置した

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
リスト2 WordからExcelを起動させるコード

 文字列型の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が起動して、指定したファイルが開かれる。

図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)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。