アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで今開いてるフォルダと同じ場所にpdf保存して、名前をセルからとりたいのですがどうすればいいですか⁇

Sub PDFを同じフォルダに保存()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".")) & "pdf"
End Sub

どこをさわればいいですか⁇
宜しくお願い致します。

A 回答 (3件)

こんにちは


>エクセルで今開いてるフォルダ
この表現は合っていますか?
今開いてるフォルダと言うのは複数ある可能性があり特定できません

GetSaveAsFilenameメソッドで名前を付けて保存でどうでしょう?

Sub example()
Dim pdf_File As Variant
Dim pdf_name As String
pdf_name = ActiveSheet.Range("A1").Text
pdf_File = Application.GetSaveAsFilename(InitialFileName:=pdf_name & ".PDF", FileFilter:="PDFファイル,*.pdf")
If pdf_File = False Then
Exit Sub
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=pdf_File
End Sub

面倒?
もし、今開いてるフォルダと言うのが特定できるなら

例えばVBA実行ブックの保存されているフォルダ

Sub PDFを同じフォルダに保存()
Dim フォルダパス As String
フォルダパス = ThisWorkbook.Path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=フォルダパス & "\" & ActiveSheet.Range("A1").Text & ".pdf"
End Sub
で保存できます

>名前をセルから
ファイル名に使えない文字列が含まれる場合がありますので注意が必要です
    • good
    • 0
この回答へのお礼

助かりました

ありがとうございます‼︎

お礼日時:2022/12/13 05:59

Qchan1962さんの後段のVBAコードに1票です。



ご質問者は、

Filename:=Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".")) & "pdf"

と記述しているところから推測すると、起動中のVBAのあるEXCELブックの保存先と同じフォルダにPDFを保存したいのだと思います。
ただ、掲出されたVBAだともともとのEXCELファイルの名前と同じ名前でPDFが保存されてしまいます。A1セルにPDFのファイル名があるとして、修正するとすれば、

Sub PDFを同じフォルダに保存()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\")) & ActiveSheet.Range("A1").Text
End Sub

となりますが、だとするとQchan1962さんの後段のVBAを用いればよいことは明らかです。
    • good
    • 0

>前をセルからとりたいのですがどうすればいいですか⁇



補足要求です。
1.どのシートのどのセルですか。
2.そのセルに"あああ"と記入されていたら、"あああ.pdf"の名前で保存したいということでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています