見出し画像

ExcelマクロVBAを活用してWordと連携し、差し込み印刷を自動化する方法

こんにちは、エノモトです。今日は「ExcelマクロVBAを活用してWordと連携し、差し込み印刷を自動化する方法」について、順を追って説明していきます。少し高度な内容ですが、丁寧に説明するので、一緒に学んでいきましょう。

1. 準備

まず、使用するファイルを確認しましょう。今回使うのは2つのファイルです。

1. Excelファイル:差し込み印刷に使うデータが入ったファイルです。たとえば、「氏名」や「住所」などのリストですね。
2. Wordテンプレート:差し込み印刷を行うためのWordファイルです。こちらには、差し込みたい部分にあらかじめブックマークが設定されています。

これで準備は完了です。

2. ExcelマクロでのVBAの記述

次に、VBAのコードを書いていきます。まずは、Excelの「開発」タブを使って、マクロを作成します。「Alt」 + 「F11」を押してVBAエディタを開きましょう。

以下のコードを使います

このコードでは、ExcelのデータをWordに差し込み印刷する方法を実現しています。

Sub Word差し込み印刷()
   Dim wdApp As Object
   Dim wdDoc As Object
   Dim ws As Worksheet
   Dim lastRow As Long
   Dim i As Long

   ' Excelのシートを指定
   Set ws = ThisWorkbook.Sheets("シート名") ' シート名を正しく設定してください

   ' Wordアプリケーションを起動
   On Error Resume Next
   Set wdApp = CreateObject("Word.Application")
   On Error GoTo 0

   ' Wordが見つからなかった場合
   If wdApp Is Nothing Then
       MsgBox "Wordが起動できませんでした。", vbExclamation
       Exit Sub
   End If

   ' Wordテンプレートファイルを開く
   Set wdDoc = wdApp.Documents.Open("C:\path\to\your\template.docx") ' テンプレートファイルのパスを指定

   ' Wordを表示
   wdApp.Visible = True

   ' Excelデータの最終行を特定
   lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

   ' データを1行ずつWordに差し込む
   For i = 2 To lastRow ' データが2行目から始まる場合
       ' Wordのブックマークにデータを挿入
       wdDoc.Bookmarks("氏名").Range.Text = ws.Cells(i, 1).Value ' 氏名
       wdDoc.Bookmarks("住所").Range.Text = ws.Cells(i, 2).Value ' 住所

       ' 印刷
       wdDoc.PrintOut

       ' 新しいドキュメントを作成して次のデータを差し込む
       wdDoc.Close SaveChanges:=False
       Set wdDoc = wdApp.Documents.Open("C:\path\to\your\template.docx")
   Next i

   ' 終了時にWordを閉じる
   wdDoc.Close SaveChanges:=False
   wdApp.Quit

   ' メモリ解放
   Set wdDoc = Nothing
   Set wdApp = Nothing
End Sub

ここから先は

645字

¥ 100

この記事が気に入ったらチップで応援してみませんか?