ExcelVBA~ExcelデータをWordへ挿入~

ExcelデータをWordへ挿入して出力しよう!

このページでできること

VBAを利用してExcelデータをWordへ挿入し、出力する。


1. 必要な準備

1.1 テンプレートの作成

Wordで挿入に使うテンプレートを作成します。以下のようにプレースホルダーを記載してください:

例:

姓: [姓]
名: [名]
住所: [住所]
電話番号: [電話番号]
メールアドレス: [メールアドレス]

1.2 エクセルデータの作成

エクセルに以下のようなデータを用意します:

No住所電話番号メールアドレス
1山田太郎東京都新宿区03-1234-5678yamada@example.com
2佐藤花子大阪府大阪市06-9876-5432sato@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オブジェクトを使用するには、参照設定を行う必要があります。以下の手順に従って設定してください:

  1. VBAエディターを開く:
    • Excelで「Alt + F11」を押してVBAエディターを開きます。
  2. 参照設定を開く:
    • メニューの「ツール」→「参照設定」をクリックします。
  3. Microsoft Word Object Library を選択:
    • 「Microsoft Word xx.x Object Library」(xx.xはバージョン番号)を探してチェックを入れ、「OK」をクリックします。

これでWordオブジェクトライブラリが有効になります。参照設定を行うことで、Wordの操作がスムーズに実行できるようになります。


4. 手順

  1. Wordテンプレートとエクセルデータの準備
    • Wordテンプレートを保存します(例: wordにエクセルデータ挿入テンプレート.docx)。
    • エクセルデータを作成し、テンプレートと同じフォルダに保存します。
  2. VBAコードを実行
    • Excelの「開発」タブからVBAエディターを開き、コードを挿入します。
    • 実行すると、データごとにWordファイルが生成され、保存されます。

5. 注意点

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

コメント