• ベストアンサー

PDFファイルを開き、印刷し、閉じるマクロ

web2525の回答

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

PDFファイルの印刷はReader上で行うので、Excelから直接実行はできません VBAから実行するにはSendKeysでReaderを操作するのが一番簡単な方法 Readerがアクティブの状態で SendKeys "^p", True SendKeys "{ENTER}" この2つを実行すれば印刷が始まります SendKeysに関しては下記サイト参照 http://officetanaka.net/excel/vba/statement/SendKeys.htm http://www.moug.net/tech/exvba/0150016.html 終了動作もReaderがアクティブの状態で SendKeys "%{F4}" で終了できます ----- その他の方法として Adobe Reader で PDF ファイルを表示 / 印刷する方法 http://pdf-file.nnn2.com/?p=752http://www.f3.dion.ne.jp/~element/msaccess/AcTipsAdobeReader.html 標準モジュール AdobeReaderは https://app.box.com/shared/jisind0q7l ↑ ココでダウンロードしたエクセルファイルに組み込まれています 私も、はじめ内容がよくわからなかったけど、Reader開かずにVBA上から直接印刷できるなど、理解できると結構便利に使えます

関連するQ&A

  • エクセルVBAでPDFを開く

    以下のような記述でアクロバットリーダーは立ち上がるのですが、 「この文書を開くときにエラーが発生しました。このファイルが見つかりません」 と出てきてしまいます。 どのようにしたら開いてくれるのでしょうか? Sub test3() Dim P As String P = "\\C:\AAA\sample.PDF" Shell "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe" & " " & P, vbNormalFocus End Sub

  • vbaでPDFファイルが印刷されない

    エクセルのA列に「フォルダ場所+ファイル名.pdf」のリストを作成し、 PDFファイルを開き、印刷し、閉じるマクロを作成しましたが、全く印刷されません。 エラーが出て止まることなく、次々進んでいるのですが、肝心の印刷が実行されていません。 ネット検索で見つけたものをアレンジしたのですが、高度すぎて苦戦しています。 エクセルシートの内容は、 セルA2~には、フォルダ場所+ファイル名.pdf  例)C:\work\test1.pdf C2には印刷実行数(ファイルの数) を置いています。 どなたかご存知の方いらっしゃいましたら、どうか教えてください。 よろしくお願いいたします。 ---------------------------------------------------- Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub PDF() Dim AA, BB, CC, DD Dim AAA, BBB Dim i As Long For i = 1 To Range("C2").Value AA = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe /t " BB = Range("A" & i + 1).Value CC = Application.ActivePrinter DD = AA & """" & BB & """" & " " & """" & CC & """" Debug.Print DD Set AAA = CreateObject("WScript.Shell") Set BBB = AAA.exec(DD) Sleep 1000 On Error Resume Next BBB.Terminate Set BBB = Nothing Set AAA = Nothing Next i End Sub

  • VBAからAcrobat 8.0でPDFファイルを開く

    こんにちは Acrobat 7.0ですとShell起動できるのですが、Acrobat 8.0ですと起動できません。 Shell(pathname[,windowstyle]) pathnameにはプログラム名 + 表示するファイル名を指定しています。 具体的には"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe C:\Work\PDF1.pdf" です。 8の場合は "C:\Program Files\Adobe\Acrobat 8.0\Reader\AcroRd32.exe C:\Work\PDF1.pdf" としています。 Adobe Readerの枠は表示されエラーメッセージとして2回続けて出ます。 一つ目は"この文書を開くときにエラーが発生しました。ファイルエラーが発生しました。」です。 ふたつ目は「この文書を開くときにエラーが発生しました。このファイルが見つかりません。」です。 これからすると、文書ファイルのフォルダ・ファイル名指定が間違っていると考えられますが、同じ文書指定で7ではOKです。 8の場合指定の仕方が違うのでしょうか? WEBで検索したのですが、同じようにして開いていることが出ていて開けないことが解りません。 アドバイスお願いいたします。

  • vba pdfを手前に開きたい  Shell

    Sub Sample() Dim myFile As String myFile = "C: \test.pdf" Shell """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"" " & myFile End Sub vbaからこれでPDFファイルを開くことができるのですが アクセスの後ろで開いてしまいます。 このコードを実行したら、開いたPDFファイルを画面の手前に表示したいので 何を付け足せばいいのでしょうか?

  • vbaでpdfを開く方法

    Sub test() Dim myFile As String myFile = "C:\Users\ダミー.pdf" Shell """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe""" & myFile End Sub これでいけるかと思ったのですが、AdobeReader自体は起動するのですが、肝心のファイルは開きません。 エラーにもなりません。 Program Files (x86)の中身を確認しても、バージョンは10で正しいようです。 AdobeReaderを起動するだけではなく、ファイルを開く方法を教えてください。

  • pdfをvbaで開いて、さらにサイズを指定する

    pdfをvbaで開いて、さらにサイズを指定することは可能ですか? Sub Sample() Dim myFile As String myFile = "C:\\問い合わせ.pdf" Shell """C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"" " & myFile End Sub これでPDFを開くことは出来るのですが 縦横、高さ、幅を指定したいのですが、可能ですか?

  • PDF資料のセット印刷について

    いつもお世話になっております。 説明会用の資料を印刷し、セットしています。 しかし、200部、300部とセットするのが大変です。 そこで、印刷時にセットしておきたいと考えました。 エクセルのマクロで書きました。ウインドウズ7、エクセル2010です。 よろしくお願いします。 説明会の資料が7種類あります。 1と2は、両面白黒印刷、ホッチキス止め  13枚 3と4は、片面白黒印刷、ホッチキス止め  19枚 5  は、両面白黒印刷          両面で1枚 6  は、片面白黒印刷          1枚 7  は、片面カラー印刷         1枚 いろいろな掲示板で探したコードを書いてみました。 意味もあまりわかってないです。。。なので 5、6、7は、印刷できるのですが、3と4はタマにしか印刷できません。 なぜなのかわかりません。同じ環境で続けてマクロを実行しましたが 印刷できるときと、出来ない時があります。 1と2は、いつも印刷できません。 どうすればいいのか教えてください。 白黒印刷や、ホッチキス止めは、プリンターで設定しています。 プリンターの追加で5種類用意しました。 あと、1から7までを1セットとし、20セット印刷したいのですが どこでループをかけたらいいのかわかりません。 よろしくお願いします。 Sub 説明会資料PDF印刷() Dim AA Dim B1, B2, B3, B4, B5, B6, B7 Dim C1, C2, C3, C4, C5 Dim D1, D2, D3, D4, D5, D6, D7 Dim AAA As Object Dim BB1, BB2, BB3, BB4, BB5, BB6, BB7 Dim i As Long AA = "C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe /t " B1 = "C:\説明会資料\説明会1.pdf" B2 = "C:\説明会資料\説明会2.pdf" B3 = "C:\説明会資料\説明会3.pdf" B4 = "C:\説明会資料\説明会4.pdf" B5 = "C:\説明会資料\説明会5.pdf" B6 = "C:\説明会資料\説明会6.pdf" B7 = "C:\説明会資料\説明会7.pdf" C1 = "DocuCentre-V C3375(両面白黒ホッチキス)" C2 = "DocuCentre-V C3375(片面白黒ホッチキス)" C3 = "DocuCentre-V C3375(両面白黒)" C4 = "DocuCentre-V C3375(モノクロ)" C5 = "DocuCentre-V C3375(カラー)" Set AAA = CreateObject("WScript.Shell") D1 = AA & """" & B1 & """" & " " & """" & C1 & """" Set BB1 = AAA.exec(D1) On Error Resume Next BB1.Terminate Set BB1 = Nothing D2 = AA & """" & B2 & """" & " " & """" & C1 & """" Set BB2 = AAA.exec(D2) BB2.Terminate Set BB2 = Nothing On Error Resume Next D3 = AA & """" & B3 & """" & " " & """" & C2 & """" Set BB3 = AAA.exec(D3) BB3.Terminate Set BB3 = Nothing On Error Resume Next D4 = AA & """" & B4 & """" & " " & """" & C2 & """" Set BB4 = AAA.exec(D4) On Error Resume Next BB4.Terminate Set BB4 = Nothing D5 = AA & """" & B5 & """" & " " & """" & C3 & """" Set BB5 = AAA.exec(D5) On Error Resume Next BB5.Terminate Set BB5 = Nothing D6 = AA & """" & B6 & """" & " " & """" & C4 & """" Set BB6 = AAA.exec(D6) On Error Resume Next BB6.Terminate Set BB6 = Nothing D7 = AA & """" & B7 & """" & " " & """" & C5 & """" Set BB7 = AAA.exec(D7) On Error Resume Next BB7.Terminate Set BB7 = Nothing Set AAA = Nothing End Sub

  • VBAを使ってPDFを印刷すると1枚しか出てこない

    エクセルvbaを使って、PDFを印刷しようとしていますが、 セルC1・C2に記載してあるファイルの保存場所+ファイル名をリスト化してあるのですが、 2枚続けて印刷ができず、1枚だけが印刷されて終わってしまいます。 印刷される1枚は2枚目にあたります。 どうしたら2枚全てが印刷されるのでしょうか? エクセル2010で、vbaは初心者です。 ご存知の方、なにとぞ教えてください。 よろしくお願いいたします。 Sub PrintTest() Dim i As Long For i = 1 To 2 PrinterName = Application.ActivePrinter fileName = Range("C" & i + 1).Value Set myShell = CreateObject("WScript.Shell") myShell.Run ("AcroRd32.exe /t " & fileName) Next i End Sub

  • EXCElのVBAからPDFを開き印刷する。

    エクセルのフォームからダイヤグロボックスを開いて、pdfファイルを選択し開き印刷したいのですが、いろいろやったのですが、ファイルが開きません。単純にファイル名を指定して開き印刷するのは出来るのですが。ダイヤグロボックスから開きたいのでどなたかご指導いただけませんか? 1.直接アクロバットリーダーからファイルを開き印刷   Private Sub CommandButton2_Click()    PrinterName = Application.ActivePrinter    Filename = "C:\○○\××××.pdf" Set myShell = CreateObject("WScript.Shell") myShell.Run ("AcroRd32.exe /t " & Filename) End Sub 2.ダイヤグロボックスからファイルを開く Private Sub microbe_Click() ChDrive "R" ChDir "R:\○○\××\△△" OpenFileName = Application.GetOpenFilename("PDF Documents,*.pdf")   ??? end sub よろしくお願いします。

  • PDFファイルが印刷されません。

    PDFファイルが印刷されません。 相手から、そのホ-ムページ上のPDFファイルから印刷せよ、との指示です。 しかし、PDFファイル画面上部のアイコンの中から、「PDFファイルを印刷」をクリックしても、ファイルの印刷コマンドから行っても、印刷画面が直に消えてしまい、プリンタは全く動き出しません。 PDFファイルを右クリックして、文書のプロパティを出すと、 ファイルサイズ  1MB アプリケーション Adobe Illustrator C53 と書かれています。 なお、私のPCは、WINDOWSのXP、IE8で、Adobe Reader9が入っています。プリンタはCANONのPIXUSです。 エクセルやワードは印刷できます。   どうすれば、印刷ができるでしょうか? どなたか、宜しく教えてください。