
デバッグ機能でチェックしながら実行すると「wddoc.PrintOut」の直前行まではうまくいっている(データのやり取りが機能している)のですが、印刷したword文書を見ると印刷したいエクセルのデータではなくて、(同path内にある)全く別の内容の「お礼状.doc」が印刷されます。
私としてはエクセルデータを「お礼状.doc」に印刷しているつもりです。
参照設定で[microsoft word 16.0 object library]は設定しています。
どなたかご教授ください。
以下構文です。
Sub スマイル4_Click()
Dim cmax, cnt, i, k As Long
Dim path, str As String
Dim wdapp As Word.Application
Dim wddoc As Word.Document
Dim wdrg As Word.Range
Dim c As Long
Dim waitTime As Variant
cmax = Range("B65536").End(xlUp).row
cnt = Range("IV1").End(xlToLeft).Column
Set wdapp = CreateObject("Word.application")
wdapp.Visible = True
For i = 2 To cmax
path = ThisWorkbook.path & "\お礼状.doc"
Set wddoc = wdapp.Documents.Open(path)
waitTime = Now + TimeValue("0:00:03")
Application.Wait waitTime
For k = 0 To cnt - 2
With wddoc.Content.Find
.Text = Range("B1").Offset(0, k).Value
.Forward = True
.Replacement.Text = Range("B" & i).Offset(0, k).Value
.Wrap = wdFindContinue
.MatchFuzzy = True
.Execute Replace:=wdReplaceAll
End With
Next
wddoc.PrintOut
wddoc.Close savechanges:=False
Set wddoc = Nothing
Next
wdapp.Quit
Set wdapp = Nothing
End Sub
No.2ベストアンサー
- 回答日時:
No.1です。
https://www.239-programing.com/excel-vba/basic/b …
にあるようなブレークポイントを設定してその際の状況を調べてみるとかかな?
https://www.239-programing.com/excel-vba/basic/b …
.PrintOut
を
.PrintPreview
にしてみてどうなっているのかを。
No.1
- 回答日時:
印刷しているのは紛れもなく
>path = ThisWorkbook.path & "\お礼状.doc"
>Set wddoc = wdapp.Documents.Open(path)
>wddoc.PrintOut
ですよね。(多分そう言う事での思惑違いかと)
Word文書が最前面にあるのなら、
wddoc.PrintOut
ではなく
ActiveDocument.PrintOut Background:=True
等にしてみるとか?
早速のご教示ありがとうございます。
事情があり、来週の火曜日以降にしか検証できません。折角ご返答いただきながら申し訳ありません。
取り急ぎお礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
VBAで印刷スプール終了の判定を...
-
クリレポのプリンタ設定について
-
VB.NET+ActiveReports で印刷...
-
VB6上から印刷ダイアログを表示...
-
vbaでPDFファイルが印刷されない
-
VBで帳票するサンプル
-
イベントプロシージャ 印刷が...
-
VB.NETで罫線付きのデータを印...
-
リッチテキストファイルの印刷
-
VB6の印刷でメモリリーク
-
PDFファイルを印刷し終了するには
-
ファイルのパス指定での印刷方法
-
ACCESSで設定した帳票の用紙サ...
-
エクセルのVBAでプリンタを変更...
-
プログラムからプリンタジョブ...
-
EXCELファイルの複数ダウンロー...
-
PHPでPDFファイルの直接印刷
-
Designer.vbは直接コードをいじ...
-
C#ソースをCSCファイルにてコン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
PHPでPDFファイルの直接印刷
-
2回以上PDFをコピーや印刷がで...
-
vbaでPDFファイルが印刷されない
-
印刷ダイアログを表示させたくない
-
VBAで印刷の成功判定
-
VB6上から印刷ダイアログを表示...
-
ACCESSで設定した帳票の用紙サ...
-
クリレポのプリンタ設定について
-
オートメーションエラー(214741...
-
プリンターを指定して印刷するには
-
VBでExcel印刷する時のプリンタ...
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷スプール終了の判定を...
-
ActiveReportsを使って[印刷ダ...
-
イベントプロシージャ 印刷が...
-
VB.NET+ActiveReports で印刷...
-
A4の2枚をA3の1枚にする編集方法?
-
VBからプリンタに出力する時に...
おすすめ情報
めぐみんさんに教えて頂いた構文を実行したのですがうまくいきません。
説明不足もあろうかと思い、画像をアップしました。(顔の画像にVBAを登録しています)
現在の現象は1行目の「高橋」は印刷されず、2行目の「伊能」が2回印刷されます。
「伊能」の内容は正しく差し込み印刷されています。
特に2回印刷させる設定でもないのに、なぜ、同じ内容で「伊能」が2回印刷されるのでしょうか?
ご教示願えれば助かります。