• ベストアンサー

VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。

VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。 VBAの起動時に、指定したセルの文字をファイル名として読み取って、 そのファイル名のPDFファイルを自動印刷させたいのですが、 セルの文字を、PDFの起動パスにセットする方法が分かりませんので ご教授いただけませんでしょうか。 具体的にはこの様な処理を考えています。 A1セルの文字を、PDFのファイル名にします。 PDFファイルは、C:¥PDFファイル に保存されています。 A1に「てすと」の文字があれば、「てすと.pdf」が印刷されます。 お手数ですが宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

意味不明なことが多々ありますが、PDFファイルにするには2つ法方があります。 とりあえず仕組みだけ。 まず印刷対象の取得をします。これは印刷対象を作成した、又は表示できるソフトがCOMに対応していないとだめですね。 Visual Basicのヘルプで getobject で検索して、リファレンスと使用例を見ましょう。 次にそのオブジェクトのメソッドに印刷メソッドが使えるか探ります。MicrosoftOffice系ならほとんどの場合大丈夫です。 例: Set MyXL = Getobject("c:\vb4\MYTEST.XLS") ActiveSheet.PrintOut エクセルなら同じようにヘルプで印刷とすれば、印刷の指定の仕方がでます。リファレンスを見ましょう。上記は当然PrintOutメソッドのオプションを指定しないとPDFになりませんね。 GetObject対象がCOMを公開又は未対応であれば、エクスプローラーのCOMを使用して、GUIの操作をスクリプトレベルで行えばいいです。 ネット上で"Shell.Application"で検索してください。 あなたの場合ファイル名だけ気にしているようですが、その前にたくさん解決しなければ、いけない問題がありますね。

wise123
質問者

お礼

過去の投稿などを見て解決できました。 ご回答していただきありがとうございました。

wise123
質問者

補足

さっそくのご回答ありがとうございます。 意味不明な説明で申し訳ありませんでした。 補足説明をさせていただきます。 印刷対象のPDFファイルは既に、c:¥PDFファイル に存在しています。 VBAの処理で、A1セルの文字を読み取って該当の PDFファイルの自動印刷を行うようにしたいと考えております。 例えば、c:¥PDFファイルのフォルダ内に、 「AAA.pdf」、「BBB.pdf」、「CCC.pdf」が存在している状態で、 VBAを起動させて、A1セルに「BBB」の文字があれば 「BBB.pdf」が印刷されます。 以上宜しくお願い致します。

関連するQ&A

  • エクセルVBAでPDFを1枚目のみ大量に印刷したい

    エクセルVBAでPDFを大量に印刷したい PDFファイルが6000件くらいあって Aというホルダーに1.pdf,2.pdf ・・・6000.pdfといった形で保存しております エクセルのA列に必要な番号を入力し50~60件印刷します A列には必要なファイル番号のみ入れていきます 2,3,6,100,210といった形でA列に必要なデータを入れて VBAで起動させるとA1から順番にアクティブプリンターで印刷したいと おもっています。 どのようなVBAにすればいいのかわかりません。 ループで繰り返しになる感じになると思います N=N+1といった感じでA1セル.PDF 印刷 A2セル.PDF           印刷 A3セル.PDF           印刷 といった形でAに入る数字は毎回違ってきます 番号はあるけどファイルがない場合はその番号を B1列から順番に摘出するようなものを考えてます 印刷については、全部1ページのみ印刷をします。1PDFで4ページあっても先頭の1ページのみ印刷です。 どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

  • エクセルVBAでPDFを大量に印刷したい

    PDFファイルが6000件くらいあって Aというホルダーに1.pdf,2.pdf といった形で保存しております エクセルのA列に必要な番号を入力し50~60件印刷します A列には必要なファイル番号のみ入れていきます 2,3,6,100,210といった形でA列に必要なデータを入れて VBAで起動させるとA1から順番にアクティブプリンターで印刷したいと おもっています。 どのようなVBAにすればいいのかわかりません。 ループで繰り返しになる感じになると思います N=N+1といった感じでA1セル.PDF 印刷 A2セル.PDF           印刷 A3セル.PDF           印刷 といった形でAに入る数字は毎回違ってきます 番号はあるけどファイルがない場合はその番号を B1列から順番に摘出するようなものを考えてます どなたかお忙しいとは思いますがご教示いただけませんか よろしくお願いいたします

  • VBAで指定したセルの内容だけ印刷されないようにすることは可能?

    シート内にいろいろ文書や数字があるのですが、その中の1部に その文字を読み取って、検索を実行するようなプログラムを作成しました。 なので、その文字を読み取る部分のセルだけ、印刷時に写したくないのですが、VBAかなにかで指定した部分のセルだけ印刷に反映させないことは可能なのでしょうか?

  • 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

  • VBAでPDFをページ指定して印刷したい

    お世話になります。 ---------- <実現したいこと> Excel VBAを用いて、PDFファイルを印刷したい。 PDFファイルは、ページ指定をしたい。原則として最初のページと任意指定のページの2ページを印刷する。 できれば、1枚の用紙に2ページを印刷したいが、こちらは優先順位は低い。 <努力したこと> VBA上で、コマンドラインを使ってPDFを単純に印刷するまでは出来た。 だが、ページ指定のオプションが見つからない。もしかして存在しないのだろうか? コマンドライン以外でも構わないので、実現できる方法があれば知りたい。 <条件> 会社のWindows PCを利用している。 Adobe Acrobat PRO DCがインストールされている。 外部のソフトをインストールすることは難しい。 ---------- その他、不明な点がありましたら追記します。 よろしくお願いいたします。

  • EXCEL VBA 印刷 または PDF

    こんにちは。 EXCEL VBA初心者で、いろいろ調べてみましたが見つけられず 質問します。 1.自分のPCに設定してあるプリンタを選択したい 2.プリンタを指定して紙で印刷する 3.もしくは、PDF印刷を選択したらファイル名を指定して保存 ファイルの保存先は、自分で決めるのでダイアログボックスまででいいですが ファイル名はあらかじめ決めておきたい。 ・PDFにするには、「クロセPDF」を使用しています。(プリンター名も) ・PDFファイル名:ABCD ・使用するユーザーは、全国にいてプリンタ名などばらばら ・Windows XP/ EXCEL2003 シート名を選択してプリンターを選択するところまでは、わかりましたが 印刷するとき、PDFにするときしファイル名を表示させるのがどうしても わかりません・・・ Sub 印刷orPDF() Sheets("シート名").Select Application.Dialogs(xlDialogPrint).Show 以下、不明 どうぞ宜しくお願い申し上げます。

  • VBAによるPDF印刷について

    1つのファイル内に、A0からA4サイズまでのどれかの図面ファイルがマルチページで数ページ入っています(サイズ並びはランダム)。印刷時に各サイズ毎でまとめて印刷したいのですが(どのページにどのサイズかは判っています)、その設定方法がわかれば教えていただきたく質問しました(最終的には自動化を目指しています)。よろしくお願いします。 例えば「1、2、3、7、9、11、12、14」ページを1度に印刷する場合、Acrobatで印刷ダイアログを表示した際に「印刷範囲」として「1-3,7,9,11-12,14」と記載できます。通常(PDF以外)の印刷設定では開始と終了ページ、部数の設定方法は確認出来ていますが、Acrobatでの印刷ダイアログへの設定方法がわかりません。 ① そもそもPDFファイルがオープンしていれば印刷ダイアログはAcrobatのものが表示されるのか?。 ② 表示されないのであればどうすれば表示できるのか?。 ③ 表示された場合での各項目の設定方法は?。 ④ ①〜③が出来ない場合、別に方法はあるのか?。 色々とネットを検索しているのですが“これ”と思ったものが見つからずで…。検索の方法が悪いのかもしれませんが…。ここのサイトがわかりやすいとか、この参考書が良いとかの情報もあれば教えていただけると助かります。 サイズとページの取得については、他者が作成したエクセルVBAを利用しています(処理コメント説明が一切無いので解析に苦労しながら改造している状態です)。VBA以外も考えたのですが、とりあえずはVBAがらみで今四苦八苦しています。PDFを扱わない処理は経験しているのですが…。出来なければ開始と終了ページで回数を回すしかないのかと。なお、Acrobat有償版は入っています。

  • 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

  • エクセルでセル内容でpdfで保存しメールの起動まで

    いつもお世話になっております。 ここで絶大なる支援を受けて表題に関するいくつかのマクロを教えていただいて色んな定常作業に組み込んで非常に便利に使い始めたのですが、下記の組み合わせが試行錯誤(当方の実力)ではどうしても達成出来ないのでHELPです。 1.エクセルの複数の指定セルを繋げてファイル名にする。   A1セルが「赤」、B1セルが「色」の場合はファイル名を「赤色」としたい。 2.上記のファイルを指定のパスのホルダーに保存する 3.そのpdfファイルを添付したメール画面でOutlookを起動する。 1.2.+指定アドレスに送信、まで全自動で完了する完成版はあるのですが、自動送信ではなくメールの起動までの方が非常に汎用性が高いので何とかお願いします。 また、ファイル名に2つのセルの内容をつなぐこともうまくいきませんでした。

  • ファイル名を「任意のセル内容+指定した語句」にしたい

    エクセルのファイル名を 「ある決まったセルに入力された文字」+「こちらで指定した語句」に出来ないかと思っています。 例)セルA1にある文字「100200-01」、指定した語句「注文書」   結果「100200-01注文書」というファイル名がつく。 また、これを、保存先を指定しなく、それぞれ操作者が指定した保存先に保存することは可能でしょうか? 保存場所を任意で指定できないのであれば、 ファイルを保存する作業はしなくて、ファイル名だけつける処理のみでもよいです。「名前をつけて保存」のWINDOWが開いて、ファイル名欄にこちらの指定したファイル名が入った状態になるまでを自動化するというのでもいいです。 以上よろしくお願いいたします。

専門家に質問してみよう