差し込み印刷のファイル分割について
コードをそのままイミディエイトウィンドウに貼り付けても実行はでき
ません。
VBA画面の左側のプロジェクトウィンドーで、This Document を選択し
「コード表示」ボタンをクリック(「表示」メニューの「コード」でも可)
→ 表示されたコードウィンドーにコードを貼り付けます。
実行は、Wordの「開発」の「マクロ」
→ マクロ名(「差し込み印刷時ファイル分割」)を選択し[実行]
*ただし,作成したWordファイルを適当な場所に保存してから実行し
ないと、差し込みファイルの保存先が分からなくなる可能性があります。
必ず保存後に実行してください。
・レコードの数を指定する方法ですが、下のようにコードを書き換え
れば可能です。
Sub 差し込み印刷時ファイル分割()
Dim i As Long, LRec As Long
Dim start, last As Integer
Dim maisu As Integer
Dim rNo As Integer
Dim fName As String
Dim DocNum As Integer
fName = ”差し込み” 'ファイル名
With ThisDocument.MailMerge
.DataSource.ActiveRecord = wdLastRecord 'データソース
LRec = .DataSource.ActiveRecord 'レコード数
Label1:
maisu = Val(InputBox(prompt:=”何枚ずつ?”, Title:=”枚数”, Default:=1))
If maisu <= 0 Then MsgBox (”不正です”): GoTo Label1
start = 1
rNo = 1
DocNum = 0
Do While start <= LRec '開始レコードがレコード数より小さいときはLoopまでを繰り返す
last = start + maisu - 1 '差し込み処理の最終レコード
If last >= LRec Then last = LRec
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.DataSource.FirstRecord = start
.DataSource.LastRecord = last
'.DataSource.ActiveRecord = rNo
.Execute Pause:=True 'start~lastまでのレコードの差し込み文書作成
'ファイルの保存を自動で行うときは下の3行を有効にする。
'DocNum = DocNum + 1
'ActiveDocument.SaveAs ThisDocument.Path & ”\” & fName & ”_” & DocNum & ”.docx”
'ActiveDocument.Close
start = last + 1 '次の差し込み文書の開始レコード設定
Loop
End With
End Sub
上のコードを実行すると、「枚数」を聞いてきますので、枚数を指定して
[OK]で実行します。
*「'DocNum = DocNum + 1」の行から3行の先頭の ’を消して実行すると
自動で「差し込み_1.docx」のようなファイル名で元のWordファイルと同じ
フォルダに保存されます。