[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『任意フォルダのpngファイルをPDF化したい』(八家)
いつもお世話になっております。
任意のフォルダに格納されているpngファイルを一括でPDF化したいマクロを作りたいと思っていますが、
それについてご相談したく、投稿しました。
前提:任意のフォルダにpngファイルが任意の個数で格納されている。
条件?@:エクセルマクロファイルにおいて、特定のボタンを押すと下記の働きを持つ。
条件?A:窓が出てきて、PDF化したい任意のフォルダが選択できる。
条件?B:OKを押した後、フォルダに格納されているpngファイルがすべてPDF化される
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sub 画像をPDFに変換()
Dim fd As FileDialog Dim f As String Dim img As Image Dim pdfDoc As pdf
' 参照設定の確認(必須) ' Microsoft Word Object Library または、適切な画像処理ライブラリを参照設定しているか確認してください。 ' Visual Basic Editorの「ツール」メニューから「参照設定」を選択し、確認・追加を行います。
' フォルダ選択ダイアログを表示 Set fd = Application.FileDialog(msoFileDialogFolderPicker) If fd.Show <> -1 Then Exit Sub ' キャンセルされた場合
f = fd.SelectedItems(1) & "\" ' 選択されたフォルダのパス
' フォルダ内の全てのpngファイルを取得 For Each f In Dir(f & "*.png") On Error Resume Next ' エラーが発生しても処理を続行
' 画像オブジェクトを作成し、画像を読み込む Set img = CreateObject("AImage") If Err.Number <> 0 Then MsgBox "画像の読み込みに失敗しました:" & f & vbCrLf & Err.Description, vbCritical Err.Clear GoTo NextFile ' 次のファイルへ End If img.LoadFromFile f On Error GoTo 0 ' エラー処理を終了
' PDFドキュメントを作成し、画像を挿入 Set pdfDoc = CreateObject("AcroExch.PDDoc") pdfDoc.Init pdfDoc.AddPage pdfDoc.GetPage(1).AddImage img
' PDFファイルを保存 pdfDoc.SaveAs f & ".pdf"
' 成功メッセージを表示 MsgBox "変換が完了しました:" & f & ".pdf", vbInformation
' オブジェクトの解放 Set img = Nothing Set pdfDoc = Nothing
NextFile:
Next f
MsgBox "全ての変換処理が完了しました。" End Sub
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
ただ、これを『実行』した場合、
コンパイルエラー ユーザー定義型は定義されていません
・・というエラーメッセージが表示され、
Dim img as image が黄色マーカーで表示され、うまく実行できません。
エラーがなくなるよう、適切なコードをご教授願えないでしょうか。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
Set pdfDoc = CreateObject("AcroExch.PDDoc")が必須でしたら他の回答者様の お出ましをお待ちください。使った事が有りませんで、悪しからずm(__)m でわ m(__)m For Each 〜でもエラーが有りそうな気がします。。。^^; 余計なお世話でしたら御免くださりませ。。。<< _ _ >>
(隠居Z) 2025/01/27(月) 21:29:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.