何でもExcelで済ませてしまう人がいる――Selection.Text/FontプロパティでExcelの文章をWordに貼り付けるには:VBA/マクロ便利Tips
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、Excelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。指定した選択範囲の文字列のフォントを設定するSelection.Fontの使い方も分かるだろう。
今回はExcelのセルに入力された「文章」を、Wordに貼り付ける方法を紹介する。使用するExcelのファイルは、これまでに何度も使用してきた、「K:\Excel_Word_VBA_Tips\Excel_Word連携VBA.xlsm」だ。フォルダは各自が保存しているフォルダと読み替えてほしい。
ExcelからWordに文章を入力する準備
「Excel_Word連携VBA.xlsm」をダブルクリックしてExcelを起動し、「ExcelからWordに文書を書き出す」という新しいシートを作成する。そのシートの中に図1のような文章を作成し「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
以降、コードの中身を解説する。
まず、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行目)
定数 | 意味 |
---|---|
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で済ませてしまう人がいる
今回はこれで終わりだ。実務において、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.
関連記事
- どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
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