PR

AccessとWordで帳票印刷|VBAで業務効率アップ!

Access
スポンサーリンク

こんにちは、なかぜんです!

「Accessで管理しているデータをWordで綺麗に印刷できたら…」「Accessのレポートだけじゃ物足りない…」そんなお悩みをお持ちではありませんか?

実はAccessとWordを連携させれば、請求書や報告書などの帳票を自動で出力できるようになります。VBAを使って印刷まで自動化すれば、業務効率がグンとアップしますよ!

スポンサーリンク

AccessとWordを連携するメリット

  • 帳票デザインをWordで自由にレイアウトできる
  • Accessのデータを活用して個別帳票を一括作成
  • VBAを使えばボタン一つで自動印刷も可能

基本の流れを確認しよう

1. Wordの帳票テンプレートを作る

Wordで帳票の「ひな形」を作成します。差し込みフィールドの代わりに、例えばこんな形でプレースホルダを入れておきましょう:

【顧客名】様  
ご注文ありがとうございます。  
注文日:【注文日】  
商品:【商品名】  
数量:【数量】

この【~】部分をAccess側から置換していくイメージです。

2. AccessからWordを操作するVBAを書く

次に、AccessからWordを開き、データを差し込んで帳票を出力するVBAを作成します。

VBAコード例(顧客ごとにWord帳票を出力)


Sub 帳票をWordで印刷()

    Dim wdApp As Object
    Dim wdDoc As Object
    Dim rs As DAO.Recordset
    Dim templatePath As String
    Dim savePath As String

    ' Wordのテンプレートファイルのパス
    templatePath = "C:\帳票テンプレート\帳票テンプレート.docx"

    ' Wordアプリケーションを起動
    Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = True ' 印刷時に非表示にしたい場合はFalse

    ' 顧客データの取得(例としてT_顧客から)
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM T_顧客")

    Do Until rs.EOF
        ' テンプレートを開く
        Set wdDoc = wdApp.Documents.Open(templatePath)

        ' テキスト置換
        With wdDoc.Content.Find
            .Text = "【顧客名】"
            .Replacement.Text = rs!顧客名
            .Execute Replace:=2
            .Text = "【注文日】"
            .Replacement.Text = Format(rs!注文日, "yyyy/mm/dd")
            .Execute Replace:=2
            .Text = "【商品名】"
            .Replacement.Text = rs!商品名
            .Execute Replace:=2
            .Text = "【数量】"
            .Replacement.Text = rs!数量
            .Execute Replace:=2
        End With

        ' 保存&印刷
        savePath = "C:\帳票出力\" & rs!顧客名 & "_帳票.docx"
        wdDoc.SaveAs savePath
        wdDoc.PrintOut

        wdDoc.Close False
        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    wdApp.Quit
    Set wdApp = Nothing

    MsgBox "帳票の出力が完了しました!", vbInformation

End Sub

解説: このコードでは、Wordのテンプレートを開いて、レコードセットの各顧客情報を順番に差し込み、保存&印刷しています。「【顧客名】」などのキーワードをFind機能で置換するのがポイントです。

よくある注意点・エラー

  • Wordテンプレートのパスが間違っている → 絶対パスで指定しましょう
  • レコードが0件 → クエリにWHERE条件を付けた場合は要確認
  • Wordオブジェクトの解放忘れ → 必ずSet = Nothingで終了処理を
  • 印刷設定が環境依存 → テスト印刷を事前に行うのが安心です

中級者向けの応用ポイント

1. PDF出力に対応する

以下のようにすれば、WordからPDFファイルとして出力することも可能です。


wdDoc.ExportAsFixedFormat "C:\帳票PDF\" & rs!顧客名 & ".pdf", 17

2. 差し込み印刷を使う方法

Wordの「差し込み印刷」機能とAccessのクエリを連携させて帳票を一括作成する方法もありますが、細かい制御をしたい場合はVBAの方が便利です。

まとめ:AccessとWordで帳票印刷にチャレンジ!

AccessとWordを連携させれば、業務で使える綺麗な帳票が簡単に作れるようになります。テンプレートの工夫とVBAの自動化で、印刷作業の手間を大幅に減らせます。

今回の内容をマスターすれば、「Accessデータ→Word印刷」という業務フローがスムーズになります。次は「PDF化」や「メール送信」といったさらなる自動化にもチャレンジしてみましょう!

それでは、なかぜんでした。またお会いしましょう♪

楽天Kobo電子書籍ストア
¥2,200 (2025/05/04 10:42時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング