0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WORDで差込印刷を相対パスのファイルに対して行う

Last updated at Posted at 2023-01-21

はじめに

WORDの差込印刷機能では、どうも外部のデータファイルは絶対パスでしか指定出来ないようなので、ファイルをOnedriveなどで他人と共有したらリンク切れが起きてしまいます。
どうしても相対パスでは指定できないようです。
それで、データファイルのフォルダ名が変わっても問題なく差込印刷が可能な方法を考えました。

差込印刷のデータファイルをテキストで作成

差込みファイル
差込ファイル.txt
番号	氏名
1	鈴木一郎
2	田中花子
3	山田太郎

・フィールド区切りはtab(カンマでも可)
・1行目はタイトルとする

WORDファイル

image.png

結果のプレビュー

image.png

対応マクロ

ThisDocumentのOpenイベントに下記のコードを記載する
ファイルの拡張子をdocmで保存(docxではマクロを保存できないため)

Private Sub Document_Open()
    Dim strPath As String
    strPath = ThisDocument.Path & "\差込ファイル.txt" '相対パスのファイル名を指定する
    Call ActiveDocument.MailMerge.OpenDataSource(strPath)
    ThisDocument.Saved = True '未編集の時に「保存しますか」の確認を表示させない
End Sub

'以下のマクロを記述するとオープン時にSQLコマンドの確認メッセージが表示されない
Private Sub Document_Close()
    Dim Saved As Boolean
    Saved = ThisDocument.Saved
    Call ActiveDocument.MailMerge.DataSource.Close
    ThisDocument.Saved = Saved
End Sub

2023/1/25 追記
差込ファイル.txt をEXCELファイルに変えるとEXCELファイルで差込データを作成することも可能
その場合はOPEN時にシート名を選択する画面が表示されますが適切なシートを選んでOKを押下すればOK
image.png

やったこと

マクロの記録機能で、差込印刷の「既存のリストを使用」コマンドを実行して記録させて、生成されたコードから関係のなさそうな引数を削除し、外部ファイルのパス部分をThisDocumentのパスになるように変更

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?