何でもExcelで済ませてしまう人がいる――Selection.Text/FontプロパティでExcelの文章をWordに貼り付けるにはVBA/マクロ便利Tips

業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、Excelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。指定した選択範囲の文字列のフォントを設定するSelection.Fontの使い方も分かるだろう。

» 2016年02月18日 05時00分 公開
[薬師寺国安PROJECT KySS]
「VBA/マクロ便利Tips」のインデックス

連載目次

※本Tipsの環境:Windows 8.1 Enterprise(64ビット)+Excel 2013+Word 2013


 今回はExcelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。使用するExcelのファイルは、これまでに何度も使用してきた、「K:\Excel_Word_VBA_Tips\Excel_Word連携VBA.xlsm」だ。フォルダは各自が保存しているフォルダと読み替えてほしい。

ExcelからWordに文章を入力する準備

 「Excel_Word連携VBA.xlsm」をダブルクリックしてExcelを起動し、「ExcelからWordに文書を書き出す」という新しいシートを作成する。そのシートの中に図1のような文章を作成し「Wordに書き出す」ボタンを作成しておく。

図1 「ExcelからWordに文書を書き出す」シート内に作成した文章とボタン

 「ボタン」は、Excelメニューの「挿入」→「図形」と選択して、「角丸四角形」を配置し、これを選択して、マウスの右クリックで表示されるメニューから、「テキストの編集」を選択して、「Wordに書き出す」と指定する。

 「フォント」は、「Meiryo UI」、「フォントサイズ」は「14」、「フォント太さ」は「太字」、「文字位置」は「中央揃え」を指定しておく。

 次に、Excelメニューの「開発」メニューをクリックして、左端に表示される「Visual Basic」を選択してVBE(Visual Basic Editor)を起動する。

VBEにVBAを記述する

 プロジェクト内に既に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
リスト1 Excelの文章をWordに書き出すコード

 以降、コードの中身を解説する。

 まず、2〜3行目でObject型の変数、myWord、myWordDocを宣言する。

 次に、CreateObject関数で「Word.Application」オブジェクトへの参照を作成し、変数myWordにセットする(4行目)。

 Document.Addで新しいWord文書を追加し、VisibleプロパティにTrueを指定して、表示する(6〜7行目)。

指定した選択範囲の文字列を設定するSelection.Textプロパティ

 Selection.TextプロパティでWord文書に、Excelのセル「A1」の内容を表示するようにする(8行目)。

指定した選択範囲の文字列のフォントを設定するSelection.Fontプロパティ

 文章のフォントはそれぞれ下記のようにセットする。

  • Font.Name(書体)プロパティに「Meiryo UI」を指定する(9行目)
  • Font.Size(文字サイズ)プロパティに「14」を指定する(10行目)
  • Font.ColorIndex(指定されたフォントの色)プロパティに表1の色を指定する。今回は「wdBlue」(青)を指定した(11行目)
表1 ColorIndexに指定する定数とその意味
定数 意味
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のように表示される。

図2 Excelの「文章」がWordに表示された

世の中には何でもExcelで済ませてしまう人がいる

 今回はこれで終わりだ。実務において、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.

RSSについて

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

メールマガジン登録

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