業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、Excelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。指定した選択範囲の文字列のフォントを設定するSelection.Fontの使い方も分かるだろう。
今回はExcelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。使用するExcelのファイルは、これまでに何度も使用してきた、「K:\Excel_Word_VBA_Tips\Excel_Word連携VBA.xlsm」だ。フォルダは各自が保存しているフォルダと読み替えてほしい。
「Excel_Word連携VBA.xlsm」をダブルクリックしてExcelを起動し、「ExcelからWordに文書を書き出す」という新しいシートを作成する。そのシートの中に図1のような文章を作成し「Wordに書き出す」ボタンを作成しておく。
「ボタン」は、Excelメニューの「挿入」→「図形」と選択して、「角丸四角形」を配置し、これを選択して、マウスの右クリックで表示されるメニューから、「テキストの編集」を選択して、「Wordに書き出す」と指定する。
「フォント」は、「Meiryo UI」、「フォントサイズ」は「14」、「フォント太さ」は「太字」、「文字位置」は「中央揃え」を指定しておく。
次に、Excelメニューの「開発」メニューをクリックして、左端に表示される「Visual Basic」を選択してVBE(Visual Basic Editor)を起動する。
プロジェクト内に既にModule1が追加されているので、この中にリスト1のコードを記述する。
Sub ExcelからWordに文書を書き出す() Dim myWord As Object Dim myWordDoc As Object Set myWord = CreateObject("Word.Application") With myWord Set myWordDoc = .Documents.Add .Visible = True .Selection.Text = Range("A1").Value .Selection.Font.Name = "Meiryo UI" .Selection.Font.Size = 14 .Selection.Font.ColorIndex = wdBlue End With Set myWord = Nothing Set myWordDoc = Nothing End Sub
以降、コードの中身を解説する。
まず、2〜3行目でObject型の変数、myWord、myWordDocを宣言する。
次に、CreateObject関数で「Word.Application」オブジェクトへの参照を作成し、変数myWordにセットする(4行目)。
Document.Addで新しいWord文書を追加し、VisibleプロパティにTrueを指定して、表示する(6〜7行目)。
Selection.TextプロパティでWord文書に、Excelのセル「A1」の内容を表示するようにする(8行目)。
文章のフォントはそれぞれ下記のようにセットする。
定数 | 意味 |
---|---|
wdAuto | 自動的に設定される色(既定値)。通常は黒 |
wdBlack | 黒 |
wdBlue | 青 |
wdBrightGreen | 明るい緑 |
wdByAuthor | 文書の作成者が色を定義 |
wdDarkBlue | 濃い青 |
wdDarkRed | 濃い赤 |
wdDarkYellow | 濃い黄 |
wdGray25 | 25%灰色 |
wdGray50 | 50%灰色 |
wdGreen | 緑 |
wdNoHighlight | 設定した蛍光ペンを解除 |
wdPink | ピンク |
wdRed | 赤 |
wdTeal | 青緑 |
wdTurquoise | 水色 |
wdViolet | 紫 |
wdWhite | 白 |
wdYellow | 黄 |
参考:WdColorIndex 列挙型 |
リスト1を図1のボタンに関連付け実行すると、図2のように表示される。
今回はこれで終わりだ。実務において、Excelで書いた文章をWordに表示させるようなことは、ほとんどないかもしれない。しかし、世の中には何でもExcelで済ませてしまう人がいるのも事実だ。そんな人がExcelで文書を書いて送って来た際に、Wordに写す必要に迫られた場合には、このサンプルを利用するといいだろう。
「書体」「文字サイズ」「文字色」を入力するセルを作成しておいて、自分の気に入った設定にするといいだろう。
薬師寺国安事務所代表。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.