[[20220602200008]] 『差し込み印刷のレコードごとにファイルを作成し保』(のほほほーん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『差し込み印刷のレコードごとにファイルを作成し保存したい』(のほほほーん)

ワードの差し込み印刷のレコードごとににファイルを作成し保存したいです。

同じフォルダにデータ元のエクセルとワードのフォーマットが置いてあります。

↓で実行するとエクセルの空白セルのレコードも作成されて新規ファイルを作り続けてしまいます。
Excelの入力あるの最終行までレコード数が終わるようにしたいです。

何がいけないのでしょうか?
ご教示お願いいたします。


Sub 差し込み印刷_レコード毎に別ファイルで保存()

 Dim i As Integer
 Dim iMax As Integer
 Dim myName As String
 Dim myMainDoc As Document
 Dim myNewDoc As Document

 Set myMainDoc = ActiveDocument

 With myMainDoc.MailMerge

 .DataSource.ActiveRecord = wdLastRecord
 iMax = .DataSource.ActiveRecord

 .Destination = wdSendToNewDocument

 .SuppressBlankLines = True

 For i = 1 To iMax

 With .DataSource
 .FirstRecord = i
 .LastRecord = i
 .ActiveRecord = i
 End With

 Call .Execute(Pause:=True)
 DoEvents

 myName = .DataSource.DataFields("件名").Value

 Set myNewDoc = ActiveDocument
 If myName <>""Then
 myNewDoc.SaveAs FileName:=myMainDoc.Path &"\"&_
 myName &".docx", _
 FileFormat:=wdFormatXMLDocument, _
 AddToRecentFiles:=False
 myNewDoc.Close
 End If
 DoEvents

 Next i

 End With

 Set myMainDoc = Nothing
 Set myNewDoc = Nothing

End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


順番が逆では?
 >myNewDoc.Close
 >End If

(マナ) 2022/06/02(木) 21:08


逆にするだけはまずかったです
 End If
 myNewDoc.Close wdDoNotSaveChanges

(マナ) 2022/06/02(木) 21:24


もし継続不要であれば、Exit Forも追加

(マナ) 2022/06/02(木) 21:28


板違いの質問とお叱りを受けそうなので
解決しないようならWordの掲示板がよいです。
そう思って、久しぶりにmougを覗いてきました。
https://www.moug.net/faq/viewforum.php?f=6

質問の少なさに驚きましたが
Excel板等では、常連さんが回答されていますので
問題ないでしょう。

(マナ) 2022/06/02(木) 21:51


マナ様
ご回答ありがとうございます。
初心者でWordも全然わからず、途方に暮れていたので嬉しいです。
試してみます!

また、カテゴリ違いの中ご回答いただきURLまでありがとうございます。
次回はそちらに質問します。
(のほほほーん) 2022/06/03(金) 08:19


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.