◇コード
Sub ExportPDF()
Dim folderPath As Variant
Dim Filename As Variant
Dim Savename As Variant
Savename = Workbooks("〇〇.xlsm").Worksheets("マクロ").Range("D2")
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
folderPath = .SelectedItems( 1 )
End With
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=folderPath & "\" & Left(Savename, Len(Savename) - 5) & ".pdf", OpenAfterPublish:=True Msgbox "出力完了" End Sub
◇エラーコード
実行エラー’-2147024773(8007007b)’
ファイルを保存できませんでした。
◇デバッグをした際に選択されたステートメント
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=folderPath & "\" & Left(Savename, Len(Savename) - 5) & ".pdf", OpenAfterPublish:=True
◇やりたいこと
ダイアログで指定したフォルダに指定セル内のファイル名でPDFとして保存したい
◇詳細
マクロ処理をかけたExcelファイルをPDFでエクスポートするマクロを作っています。
今までは「Savename」を「ThisWorkbook.Path」で指定しており、実行も問題ありませんでした。しかし、今後は名前もExcelファイル名と同じにしたいと思い、上記のコードを書いた次第です。
全体のマクロの流れとしては、
【マクロ実行用ファイル】
マクロ呼び出し用マクロでマクロ処理をかけたいファイルを指定(ブック内マクロ)
※この時に対象ファイルのパスを同ブック内のセルに記録している。
↓
【個人用マクロブック】
個人用マクロブックに入れてあるマクロで対象ファイルを処理(別ブックのマクロの呼び出し)
↓
対象ファイルをPDFでエクスポート(個人用マクロブック内のマクロ使用)
ダイアログを用いて任意のフォルダに出力できるようにしている。
といった感じです。