ExcelデータをWordへ挿入して出力しよう!
このページでできること
VBAを利用してExcelデータをWordへ挿入し、出力する。
1. 必要な準備
1.1 テンプレートの作成
Wordで挿入に使うテンプレートを作成します。以下のようにプレースホルダーを記載してください:
例:
姓: [姓]
名: [名]
住所: [住所]
電話番号: [電話番号]
メールアドレス: [メールアドレス]
1.2 エクセルデータの作成
エクセルに以下のようなデータを用意します:
| No | 姓 | 名 | 住所 | 電話番号 | メールアドレス |
|---|---|---|---|---|---|
| 1 | 山田 | 太郎 | 東京都新宿区 | 03-1234-5678 | yamada@example.com |
| 2 | 佐藤 | 花子 | 大阪府大阪市 | 06-9876-5432 | sato@example.com |
シート名を「データ」としてください。
2. VBAコードの準備
以下のVBAコードを使用します。
これにより、エクセルデータをWordテンプレートに挿入して、複数のWordファイルを保存できます。
コード例
Sub データ挿入と保存のみ()
Dim wdApp As Object
Dim wdDoc As Object
Dim ws As Worksheet
Dim i As Integer
Dim lastRow As Integer
Dim templatePath As String
Dim savePath As String
' Wordアプリケーションを起動
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = False ' Wordを非表示で実行
' テンプレートのパスを指定、使用時に書き換える必要があります。
templatePath = ThisWorkbook.Path & "\wordにエクセルデータ挿入テンプレート.docx"
' データシートを設定
Set ws = ThisWorkbook.Sheets("データ")
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' データ行をループ
For i = 2 To lastRow
' テンプレートを開く
Set wdDoc = wdApp.Documents.Open(templatePath)
' プレースホルダーをデータで置換
With wdDoc.Content.Find
.Text = "[姓]"
.Replacement.Text = ws.Cells(i, 2).Value
.Execute Replace:=2
.Text = "[名]"
.Replacement.Text = ws.Cells(i, 3).Value
.Execute Replace:=2
.Text = "[住所]"
.Replacement.Text = ws.Cells(i, 4).Value
.Execute Replace:=2
.Text = "[電話番号]"
.Replacement.Text = ws.Cells(i, 5).Value
.Execute Replace:=2
.Text = "[メールアドレス]"
.Replacement.Text = ws.Cells(i, 6).Value
.Execute Replace:=2
End With
' 保存先パスを設定、使用時に書き換える必要があります。
savePath = ThisWorkbook.Path & "\挿入結果_" & ws.Cells(i, 1).Value & ".docx"
wdDoc.SaveAs2 savePath
' ドキュメントを閉じる
wdDoc.Close SaveChanges:=False
Next i
' Wordアプリケーションを終了
wdApp.Quit
' オブジェクトの解放
Set wdDoc = Nothing
Set wdApp = Nothing
MsgBox "データ挿入が完了しました。"
End Sub
3. 参照設定
VBAでWordオブジェクトを使用するには、参照設定を行う必要があります。以下の手順に従って設定してください:
- VBAエディターを開く:
- Excelで「Alt + F11」を押してVBAエディターを開きます。
- 参照設定を開く:
- メニューの「ツール」→「参照設定」をクリックします。
- Microsoft Word Object Library を選択:
- 「Microsoft Word xx.x Object Library」(xx.xはバージョン番号)を探してチェックを入れ、「OK」をクリックします。
これでWordオブジェクトライブラリが有効になります。参照設定を行うことで、Wordの操作がスムーズに実行できるようになります。
4. 手順
- Wordテンプレートとエクセルデータの準備
- Wordテンプレートを保存します(例:
wordにエクセルデータ挿入テンプレート.docx)。 - エクセルデータを作成し、テンプレートと同じフォルダに保存します。
- Wordテンプレートを保存します(例:
- VBAコードを実行
- Excelの「開発」タブからVBAエディターを開き、コードを挿入します。
- 実行すると、データごとにWordファイルが生成され、保存されます。


5. 注意点
- パスの確認: テンプレートファイルのパスを正確に指定しましょう。
- ファイルの保存場所: 実行後のWordファイルは、Excelファイルと同じフォルダに保存されます。

コメント