
いつもお世話になります
今、皆様の投稿プログラムを使わせてもらい
アクティブブックの全シートをPDFにエクスポートしてから印刷してみました
その際、エクスポート時は OpenAfterPublish:=False によりPDFファイルの画面出力は
抑えられたのですが次の印刷後、起動されたAcrobatReaderDCの起動画面が残ってしまいます
そこで最後のステートメントを皆様の投稿サイトをいろいろ調べたのですが
よく分かりません
もし、起動されたAcrobatReaderDCの起動画面を終わらせるステートメントが
分かりましたら教えてください
Sub Macro5()
’...ファイル出力
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Temp\sample1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'...印刷
Set w = CreateObject("WScript.Shell")
a = "c:\temp\sample1.pdf"
For i = 0 To 0
w.Run ("AcroRd32.exe /t " & Chr(34) & a & Chr(34))
Next
Set w = Nothing
End Sub
以上、よろしくお願い申し上げます
No.1ベストアンサー
- 回答日時:
こんにちは。
急いで考えてみました。実験的なコードですが、
Set w = Nothing
<--ここに入れてみました。※
End Sub
---------------
'モジュールの最上部へ
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Const WM_SYSCOMMAND As Long = &H112
Private Const SC_CLOSE As Long = &HF060&
---------------
'※コードの中途から
Dim hWnd As Long
Dim ret As Long
Dim cnt As Long
Do
hWnd = FindWindow("AcrobatSDIWindow", vbNullString)
DoEvents
cnt = cnt + 1
If cnt > 5000 Then
MsgBox "失敗しました。", vbCritical
Exit Sub
End If
Loop While hWnd = 0&
'' Debug.Print hWnd '検査用 不要です
Application.Wait Now + TimeSerial(0, 0, 5)
ret = SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0)
--------------------
もう少し、丹念に調べれば、コードは短くなるはずですが、Acrobat から印刷をかけた瞬間に、コマンドは利かなくなるようなので、以下のようなコードを入れました。5秒が最適なのかは分かりません。もっと短くしてもよいかもしれません。
Application.Wait Now + TimeSerial(0, 0, 5)
また、MsgBox は、あくまでも、試験用のために入れていますので、直接、Exit Sub で構いません。
他にも、winmgmts から、Process.Terminate で終わらせる方法もありますが、SendMessageのほうがメジャーだと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
PDFファイルを開き、印刷し、閉じるマクロ
Visual Basic(VBA)
-
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
Adobe Reader を閉じる
その他(Microsoft Office)
-
-
4
PDFファイルを印刷後、自動でファイルが閉じる方法を教えてください。
その他(ソフトウェア)
-
5
PDFファイルを開かずに印刷したい
Visual Basic(VBA)
-
6
VBAでホルダー内のPDFを一括印刷したい
Excel(エクセル)
-
7
vbaでPDFファイルが印刷されない
Visual Basic(VBA)
-
8
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
9
VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません
Visual Basic(VBA)
-
10
EXCEL VBAでPDFファイルを開いて印刷
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
VBAで印刷スプール終了の判定をする
Visual Basic(VBA)
-
13
印刷要求順番と印刷出力順番が違う。
Visual Basic(VBA)
-
14
Excel VBA の印刷後の判定
Excel(エクセル)
-
15
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
フォルダ内にあるPDFファイルを一括で印刷する方法※右クリック→印刷はNG
PDF
-
18
エクセルVBAでのネットワークプリンタのポー名の取得方法は?
Visual Basic(VBA)
-
19
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
20
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VirtualBox:ヘッドレス起動の...
-
イラストレーターを立ち上げる...
-
PCのメーカーロゴが出るのが遅...
-
VBA PDFファイル印刷後のAcroba...
-
PCが立ち上がらなくなりました
-
Windows 98 起動ディスク イメ...
-
Windows98の起動不可能時の修復...
-
BIOSの初期化後OSが起動しない
-
Windows98が起動しない!!
-
Quick Time が動きません!!
-
画面が真っ黒のままです
-
MS-DOSから抜け出せない
-
起動時に止まって、F1(続行...
-
自作パソコンの起動が遅いです...
-
HDDを別のノートPCに入れ替えて...
-
MS-DOS5.0の起動中に「タス...
-
フロッピーについてお聞かせく...
-
USBがささっていると、起動...
-
PowerPC G5が起動できません
-
PC起動時に NO SYNC SIGNAL ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
msdownld.tmpファイルを削除し...
-
HDDを別のノートPCに入れ替えて...
-
VBA PDFファイル印刷後のAcroba...
-
イラストレーターを立ち上げる...
-
画面が真っ黒のままです
-
DOSモードで起動する方法を教え...
-
PCを起動すると「American Mega...
-
システムディスクをセットして...
-
Windows 98 起動ディスク イメ...
-
ZorinOS 16 Coreで、インストー...
-
PCのメーカーロゴが出るのが遅...
-
PC-9821は優先的にフロッピーか...
-
VirtualBox:ヘッドレス起動の...
-
dynabook R654 CD-ROMから起動...
-
起動するときに「WINDOWSXP-PR...
-
★PCの初期化の方法がわかりま...
-
windows xp proが起動しなくな...
-
起動時にEscを押さないと起動不...
-
起動時のメーカーロゴの削除方...
-
MSDOS画面からWINDOWSを起動す...
おすすめ情報