• ベストアンサー

エクセルVBAでPDFを作成したいのですが

エクセルのマクロでPDFを作成したいのですが、作成できません。 エクセルの中のシート1だけをPDFファイルにしたいのですが、 マクロでは無理なのでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。Wend02です。 返事遅くなりました。 >VBAの内容は理解できたのですが >常駐させるとは、どのようにするのでしょうか? >初心者的質問ですいません。 通常、私は、(MsConfig内の)スタートアップで、「XeloPDFDriver.exe」を起動させておりません。そこで、一旦、エキスプローラで探して、XeloPDFDriver.exeをダブルクリックします。そうすると、メモリに常駐します。 ふつうは、クロセPDFをインストールすれば、そのままスタートアップに登録して、起動させているでしょうから、あまり気にしなくてよいと思います。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >あとPDFにファイル名までを自動入力したいのです。 通常は、ブックのファイル名がそのまま使われています。それを、ファイル名を入れられるように、手直ししてみました。 私のほうではうまくいきました。なお、マクロの中にも書きましたが、私の場合は、通常、「クロセPDF」のプログラムは、StartUpで常駐させておりませんので、手動で立ち上げています。マクロという方法もあるのですが、常駐チェックから始まり、かなり大げさになりますので、それは割愛しております。 Sub PdfMakingR() 'クロセPDF ドライバーを使った方法 'XeloPDFDriver.exeは、普段外しておいてよいのですが、 'このファイルを常駐し忘れると作成されません。   Dim PresentPrinter As String   Dim Fname As Variant     Fname = Application.InputBox("ファイル名を入れてください。", Type:=2)   If VarType(Fname) = vbBoolean Then Exit Sub   If InStr(Fname, "pdf") = 0 Then Fname = Fname & ".pdf"     PresentPrinter = Application.ActivePrinter   Application.ActivePrinter = "クセロPDF on C:\クセロPDF\Xelo PDF Port"   ActiveSheet.PrintOut   Application.Wait Now + TimeValue("00:00:03")   With CreateObject("Wscript.Shell")    .SendKeys Fname    .SendKeys "%S"   End With   Application.ActivePrinter = PresentPrinter End Sub なお、なるべく、標準モジュールに入れたほうが負担が軽く済みます。標準モジュールへの取り付け方は、 Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、上のコードを貼り付けて、Alt + Q で、画面を閉じます。 その後は、ツールバーの「フォーム」を出して、ボタンをワークシートに貼り付け、マクロの登録で、このマクロ名を選択すれば出来上がりです。ただし、印刷範囲内には、ボタンは入れないほうがよいと思います。 もしくは、ユーザー設定で、ツールバー等にボタンをつけてマクロの登録をしますが、その場合は、マクロは、「個人用マクロブック」(PERSONAL.XLS)の標準モジュールに登録してください。

umauma2
質問者

補足

細かい説明までありがとうございます。 まだパソコンを始めて日が浅い為、知識不足です。 'クロセPDF ドライバーを使った方法 'XeloPDFDriver.exeは、普段外しておいてよいのですが、 'このファイルを常駐し忘れると作成されません。 VBAの内容は理解できたのですが 常駐させるとは、どのようにするのでしょうか? 初心者的質問ですいません。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 私は、フリーソフトウェアなら、「クロセPDF」で、以下のようにして使っています。 下の >"クセロPDF on C:\クセロPDF\Xelo PDF Port" の部分は、インストール先ですから、一度、記録マクロなどで試してみると良いと思います。 後は、Acrobat のDistiller ですが、持っていれば、ここでお訊ねになりませんよね。 Sub PdfMaking() 'クロセPDF ドライバーを使った方法   Dim PresentPrinter As String   PresentPrinter = Application.ActivePrinter   Application.ActivePrinter = "クセロPDF on C:\クセロPDF\Xelo PDF Port"   ActiveSheet.PrintOut   Application.Wait Now + TimeValue("00:00:03")   CreateObject("Wscript.Shell").SendKeys "%S"   Application.ActivePrinter = PresentPrinter End Sub

umauma2
質問者

補足

早速の返事ありがとうございました。 他のアプリケーションを動かすVBAは知識不足で、理解が出来ていませんが、これで出来そうです。 あとPDFにファイル名までを自動入力したいのです。 教えていただけないでしょうか、よろしくお願いします。

回答No.1

出来ます。 Adobe Acrobat を使うか、 ベクターとかでソフトを探してみてください。 次期のエクセルは、PDFに対応してるらしいけど 未確認情報です。

関連するQ&A

  • Excelマクロでpdfを自動作成したい

    複数のExcelシートからなるブックを、pdfとして出力しています。 現在はJustSystemのJustpdf2ドライバを使っているのですが、これだとマクロで完全自動化できないことが判明しました。 ・PDFのフアイル名と保存場所 ・上書きかどうか をいちいち聞いてきます。 Excelマクロで完全自動化するには、 ・ファイル名、保存場所をマクロで指定できる。もしくはExcelファイルと同じ場所に同じファイル名で作成する ・1シート目は上書き、2シート目からは現存のpdf (前シートのpdf)に続けて保存できるように、マクロで「上書き」か「続けて保存」かを指定できる ことが必要なのですが、JustSystemに問い合わせたところ、Justpdf2では無理とのことでした。 上記のように、複数シートからなるExcelブックを、マクロで完全自動でPDF化できるドライバ、方法がありましたら、お教えください。

  • エクセルシートをPDFファイルにする方法(マクロで)

    表題のとおりですけと、エクセルのシートをマクロをつかって、PDFファイルを作成するような、都合のいい方法はありませんか?

  • エクセルシートを分割でPDFファイルにする方法(マクロで)

    エクセルのsheetをマクロをつかって、 シート一つ一つを個別にPDFファイル作成し、 一括してシート名で保存させる 都合のいい方法はありませんか? できればマクロ初心者なので、 マクロそのままを教えてください!!

  • エクセルにマクロを使ってワード、PDFファイルを貼り付けるには?

    エクセルで表になってる名簿があります。この名簿からマクロを使って、一人づつ名前を刷り込んだシートを裂作成印刷します。その際あるセルの値に応じて人ごとに異なるワード、PDFのファイルを貼り付けて印刷したいのです。 あらかじめ、いろんなパターンのワード、PDFを貼り付けたシートを作成しておき、セルの値でどのシートを呼び出して印刷するかマクロに判定させる方法もあるかと思いますが、容量がたいへん大きくなりますので、できれば外部のワード、PDFファイルを都度貼り付けて印刷し、印刷後、貼り付けたファイルをクリアし、次のを貼り付けるという方式にできればありがたいのですが、初心者なので、ワード、PDFファイルをエクセルに貼り付けるやり方さえわかりません。

  • エクセルVBAについて

    今、エクセルVBAでマクロの作成を行っています マクロの中で、作業用に別なエクセルとシートを作成したのですが マクロの最後でその作業用のエクセルとシートを削除する用にしました。 その際に、エクセルがメッセージボックスが開き 『このエクセルブックを閉じますか』や『このシートを削除してよろしいですか』などと聞いてきます。 このボックスを出さないように強制的に消すことは出来ないのでしょうか? 出来るのであれば、やり方を教えてください。

  • ExcelのPDF変換について

    ExcelのPDF変換について OS:WindowsXP Office:Excel2003 PDF変換:Adobe Acrobat Proffesional 6.0 上記使用しています。 Excelの複数シートをまとめて1つのPDFに変換したいのですがうまくいきません。 現象としては、 シートを複数選択(作業グループ)している状態で印刷→AdobePDFドライバーを選択 にすると、各シートの保存確認が出てきてしまい、結合されません。 (1枚1枚はPDFに変換されますが10シート選択した場合は10ファイル出来てしまう) 枚数が多いので出来れば一括変換したいのですが、何故出来ないのでしょうか・・・ ちなみに、今まで全く同じ形式のExcelファイルで同じ操作を実行して変換できていました。 (中のデータだけ変えていて、ファイル自体は以前の物をコピーして使い回しているようです) さらに、他のExcelファイルで試したところ、複数シート選択・印刷実行で変換が可能でした。 これを踏まえて考えるとExcelのファイルの問題だと思うのですが・・・ マクロが含まれているため(これは以前なかった)、それが原因かと思いましたが、 マクロを含むシート以外を抜き出して別のブックに保存し、試しましたがやはり1つずつ分割されて変換されてしまいます。 問題のファイルをマクロを無視して開く・マクロを有効にして開く、どちらもやってみましたが同じでした。 もし改善する方法をご存知の方がいらっしゃったら教えていただけると助かります・・・ ※試しにPrimoPDF(フリーのPDF変換ソフト)でもやってみましたが、全く同じ現象です。 このExcel何がダメなんでしょう????

  • エクセルファイルを開かずにpdf化する

     エクセルファイルを開かずに,ファイル内のシートを指定してpdf化することは可能でしょうか? (ファイル内のシートは6シートあり,その中の3シートだけpdf化したいです。3シートは同じpdfファイルにしたいです。)  こんなことは可能でしょうか? ご存知の方おられましたらお教え下さい。よろしくお願いします。

  • エクセル2010のVBAでPDFを開きたい

    エクセルのワークシートSheet2にPDFのファイルを挿入しました。アイコン表示になっています。 Sheet1にあるボタンでこのPDFを開こうと思い、見よう見まねで Sub TEST() Worksheets("Sheet2").OLEObjects(1).Verb Verb:=xlPrimary End Sub としたところ、PDFは開くことはひらくのですがアクティブになってくれません。 Worksheets("Sheet2").OLEObjects(1).Activate に変えてもおなじです。 PDFではなくワード文書を張り付けた時には上記のコードでアクティブになってくれたのですが。 どうすればPDFをアクティブに、表に見えるようにできるでしょうか?

  • VBAでEXCELに埋め込んだPDFを開く方法

    あらかじめPDFファイルをシート内に貼り付けておき、 ユーザーフォーム上のボタンを押した時に、 PDFファイルを開くマクロを探しております。 参照パスを指定のフォルダにしなくても良い方法として あらかじめPDFファイルを貼り付ける事を考えました。 尚、使用しているexcelは2010です。

  • 瞬間PDFZEROでExcelのPDF作成

    Excel2003で作成したシートを瞬間PDFZEROでPDFファイルにすると、複数ページになってしまいます。 Excelの印刷プレビューでは1枚に収まっているのですが、PDFにした時に1枚のPDFにする方法はありませんか

専門家に質問してみよう