• ベストアンサー

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

エクセル2000 Windows7(管理者権限無し) <ソフトを使うのであれば、フリーソフト> Adobe、Acrobat 無し(Adobe Readerのみ) 以上の状況下でエクセルVBAを使って、 エクセル⇒PDF保存したいのですが、 検索の方法が悪いのか、どれかの条件で出来なくなってしまいます。 解決方法ご存知の方、ご教授いただけないでしょうか?><; 現状はCubePDFというソフトで手作業で変換しています。 (質問内容に不足部分ありましたら、補足いたします)

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

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

時間が足りなかったようですね Application.Wait (Now + TimeValue("0:00:10"))← 0:00:20 とか増やす方法もありますが 環境によって変更するようだと、不細工なので ------ここから ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False '↑プリントアウト Do cuHw = FindWindow(vbNullString, "CubePDF 1.0.0RC4 (x64)") Loop While cuHw = 0 '↑CubeBDFのウインドーが開いたかどうかを確認(この段階ではまだアクティブになるまで若干間がある) SetForegroundWindow cuHw '↑CubeBDFのウィンドーをアクティブ化 SendKeys "{ENTER}" ------ここまで cuHw = FindWindow(vbNullString, "CubePDF 1.0.0RC4 (x64)")←この部分は環境によって変更の必要あり "CubePDF 1.0.0RC4 (x64)" CubuPDFのバージョンに拠って変化します 添付画像を参考にして赤枠で囲まれたウィンド名に変更して下さい Win32 API関数 SetForegroundWindow と  FindWindow を使用していますので 標準モジュールに ----- Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Declare Function SetForegroundWindow Lib "user32" _ (ByVal hwnd As Long) As Long ----- 宣言文をおいて下さい http://www.happy2-island.com/excelsmile/smile01/capter00400-03.shtml

RENTAOSAKA
質問者

お礼

ありがとうございます!! 目からウロコとはまさにこのことです!!!!m(__)m ありがとうございます! 探す方も多い質問のようなので、 A1セルのファイル名を取得して保存するようにしたものをつけておきます。 (不完全なのでファイル名が英数字でないといけないようですが^^;) 【全て標準モジュール】(IgnorePrintAreas:=FalseはEXCEL2000では使えないらしいです) ~↓~以下~ Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Declare Function SetForegroundWindow Lib "user32" _ (ByVal hwnd As Long) As Long Sub WEB2525SANARIGATO() ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ', IgnorePrintAreas:=False '↑プリントアウト Do cuHw = FindWindow(vbNullString, "CubePDF 1.0.0RC4 (x86)") Loop While cuHw = 0 '↑CubeBDFのウインドーが開いたかどうかを確認(この段階ではまだアクティブになるまで若干間がある) SetForegroundWindow cuHw '↑CubeBDFのウィンドーをアクティブ化 Dim Fname As String Fname = Range("A1") 'ファイル名を取得 PresentPrinter = Application.ActivePrinter With CreateObject("Wscript.Shell") '保存先の所まで移動して名前をつける .SendKeys "{TAB}" .SendKeys "{TAB}" .SendKeys "{TAB}" .SendKeys "{TAB}" .SendKeys "{TAB}" .SendKeys Fname .SendKeys "{ENTER}" End With Application.ActivePrinter = PresentPrinter End Sub

RENTAOSAKA
質問者

補足

ありがとうございました。 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ', IgnorePrintAreas:=False '↑プリントアウト の部分を ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, ActivePrinter:="CubePDF on Ne05:" '↑ActivePrinter:="ここを変える" マクロの記録などで確認 <プリンタの設定> に変えて使っています^^ 2バイト文字のパス名の件は別で質問をあげることにします^^ 助かりました!!ありがとうございます^^

その他の回答 (4)

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

>この先、作成(保存)までいく方法ありますでしょうか? デフォルトの状態でPDF化して構わなければ Sheets("DEMO").PrintOut , ActivePrinter:="Cube PDF" Application.Wait (Now + TimeValue("0:00:10"))  '↑はCubePDFのウインドーが開ききるまでの待ち時間、数値は任意で指定 SendKeys "{ENTER}" 保存先やファイル名の変更、その他設定が必要な場合は http://www.excel-vba.net/excel-application-006.html ↑ こちらを参考に、変更して下さい

RENTAOSAKA
質問者

お礼

”いけましたー”とお礼を入れたかったのですが AppActivateなど色々試しては みたものの CubePDFを選択させる方法がわかりませんでした^^; 選択する方法をお教えいただけないでしょうか? ~~~ 必要かどうかわかりませんが、 cubepdf.exe の場所は C:\Program Files\CubePDF\cubepdf.exe です。

RENTAOSAKA
質問者

補足

解答ありがとうございます^^ 試してみたのですが、 Enterが CubePDF 上で押されておらず、 エクセル上でおされる形となり、 エクセルの選択セルが一つずれるだけになってしまいます^^; CubePDFがアクティブになっていないんだとは思うのですが。。。やり方が><; わかりますでしょうか?

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

管理者権限無しであれば新たなソフトのインストールは無理でしょう >CubePDFというソフトで手作業で変換しています CubeがインストールされているのであればCubePDFの仮想プリンターもインストールされていると思われます ファイル⇒印刷 で使用するプリンターをCubePDFを選択すればPDFファイルが出力されるはずです http://www.kananet.com/freesoft-cube-pdf/freesoft-cube-pdf.htm#excel-henkan

RENTAOSAKA
質問者

お礼

解答ありがとうございます^^ Sheets("DEMO").PrintOut , ActivePrinter:="Cube PDF" ↑これで試してみたのですが、Cube PDFが起動するだけで、作成(保存)まで進んでくれないのです。。。 この先、作成(保存)までいく方法ありますでしょうか?><;

  • chie65535
  • ベストアンサー率43% (8525/19379)
回答No.2

追記。 http://freesoft-100.com/pasokon/pdf_maker.html に「印刷すればPDFファイルが出来る」と言うフリーソフトがいっぱいあります。 エクセルやワードで「印刷するだけ」でPDFファイルが出来上がるので便利ですよ。 Adobeにも「印刷するとPDFになる」ってのがありますが、買うと高いです。 PDFにするのは「印刷すればよいだけ」なんで、エクセルVBAででも簡単に実行出来ます(ブックを印刷するマクロをVBAで書くだけ)

RENTAOSAKA
質問者

補足

何度もありがとうございます! XPの時はPrimo使えたんですが><; 管理者権限が厳しいですね^^; Primoは確かVBAでPDF化まで出来てた記憶があるんですけどね。。。 7は非対応で(T T)

  • chie65535
  • ベストアンサー率43% (8525/19379)
回答No.1

http://www.sourcenext.com/product/pdf/home/ の「無料体験版」を使うと、エクセルのファイルを一発でPDFファイルに出来ます。

RENTAOSAKA
質問者

お礼

早い解答ありがとうございます^^ 早速試してみたのですが、 "アクセス権が不十分なためこのマシンのすべてのユーザーが使用できるように アプリケーションをインストールすることはできません。 管理者としてログインし、再度インストールしてください。 ということで、インストールが途中で止まってしまいます^^; 会社のPCのため管理者としてはログインできないので、 この方法では、できないという結論にしました><すみません。。。

関連するQ&A

  • エクセルVBAでPDF化できますか??

    Excel VBAで取得したデータをPDF変換ソフトを使わずPDF化するプログラムはあるのでしょうか? インターネットで「VBA PDF変換」等と様々な形で検索をかけてみたのですが、ヒットしません。。。 既存のプログラムは、取得したデータをエクセルに出力し、メールを送信するものなのですが、更にPDF化してメール送信したいのです。 どなたかアドバイスよろしくお願いいたします! <PC環境> Windows XP Pro Ver.2002 Excel 2003 SP3 Adobe Reader8.1.2

  • エクセルで、一発PDF変換スールバーが無い

    OfficeXP、WindowsXP、Adobe Reader8.0をインストールしてあるのですが、エクセルに一発PDF変換のルールバーがありません。 どうやったら、ツールバーを出せるのでしょうか? http://www.acrobat-learning.com/function/reuse.html ここで、そんな機能をしったのですが・・・ Adobe Reader8.0のフリー出来ないのでしょうか?

  • pdfヴューア

    Adobe社製のフリーソフトAcrobat Readerを使っていたのですが, pdf文書の閲覧にストレスを感じていました. そこで,友人から,Acrobat Readerを使わなくても,軽いpdfヴューアがあると聞きました. そこで,Adobe社製以外のフリーソフトでpdfの閲覧ソフトは何か知っていませんか? pdfの作成とかは,Office2007を使っているので問題ないので,閲覧にストレスを感じないソフトということでお願いします.

  • フリーソフトPDF保存のエクセルVBAを教えてください。

    フリーソフトのPDFでエクセルシートを保存するVBAを教えてください。 OFFICE2007や、ADOBEで可能なのは分かったのですが、お金が無くて購入できません。 フリーソフトのPDFで印刷のダイアログまでは出せるのですが・・・。 何卒宜しくお願いいたします。

  • PDFの作成に失敗します。

    Vista office2003 Acrobat8.0の環境です。 右クリックで「Adobe PDF に変換」に変換しようとするとWord,Excelのファイルのみ 「読み取り権限がない」「PDFMaker ファイルがみつかりません」などのエラーが出て変換できません。 Word,Excelで開いてからの変換は問題なく動作します。他のファイルも右クリックから変換できます。

  • PDF→Word,Excel フリーソフト

    私は現在このソフトを使用しています。 http://www.cube-soft.jp/cubepdf/ このソフトは Word→PDF Excel→PDF 画像→PDF PDF→画像 の変換を自由自在にすることができますが、PDFをWord,Excelに変換することはできないようです。 PDFファイルをWord、Excelに変換できるフリーソフトを教えてください。 OSはwin 7 64bitです。

  • PDFファイルの印刷について

    PDFファイルを印刷するときに、そのファイル名 を、ヘッダーもしくはフッターに印刷させる方法は ありますでしょうか? EXCELのようにヘッダーフッターの設定が出来 ればうれしいのですが・・・ 使ってるソフトは、フリーのアドビリーダーです。 アドビリーダーで不可能であれば、他の方法でも かまいませんので教えて下さい。 なるべくなら、フリーソフト等でお金をかけずに 実現させたいです。 ちなみに、製品版のアクロバットなら出来るので しょうか? そのへんも含めてご指導ください。 宜しくお願いします。

  • PDFを作成するには、ソフトは有料購入するしかない?

    Word、Excelの文章をPDFに変換したり、PDFの文章に編集を加えて、PDF文章として保存したいです。 そのためにはAdobeから販売されている有料ソフトを購入する必要があるのでしょうか?フリーソフトはありませんか? PDFを作成するソフトとして、PDF Writer、PDF Distiller、Acrobat 9 Standardなどあるみたいなのですが、何がどう違うのでしょうか? 私は上記に記載した目的が達成できたら、一番安いもので結構です。

  • Excelで埋め込んだPDFを開く

    Excelで埋め込んだPDFを開く Acrobat7で作成したPDFを、Excelファイルに下記の操作で埋め込みました。 Excel2003で、「挿入」「オブジェクト」「ファイルから」 埋め込んだPDFをダブルクリックで開こうとすると、 「このオブジェクトの作成元アプリケーションを起動できません。」とメッセージが出ますが、 Acrobat7で開いてくれます。 しかし、キーワード検索して検索結果をクリックしてもそのページに飛びません。 Reader9を起動したまま、埋め込んだPDFをダブルクリックすると、起動しているReader9で開きます。 検索も正常です。 PDFの関連付けはReader9になっていて、デスクトップにあるPDFを単体で開くときはReader9になります。 Excel内のPDFをReader9で開く、Acrobat7でも正常に開く、どちらかにする方法はあるでしょうか?

  • エクセルからPDF作成ができないのはなぜ?

    office2007を使っています。 エクセルでファイルを作成し、pdfファイルにしようと、 名前を付けて保存→adobe PDFを選択して保存すると、 重大なエラーが検出されたため、Adobe Acrobat 8.1.0 Professional を継続して使用できません。アプリケーションを再インストールして、もう一度やり直してください。 とエラーメッセージが出て、pdf化できません。 これはどうやったら改善しますでしょうか。 もしくは、エクセルで作ったファイルを、名前をつけて保存 からではなく、他の方法で簡単にpdf化できるやり方はありませんでしょうか。 どなたか教えてください。 よろしくお願いいたします。