プロが教えるわが家の防犯対策術!

Excelのシート内の選択範囲のみをPDFにして指定フォルダに保存する際に、ファイル名として特定セルの値を自動で入るようにしたいのですが、試しにセルA1を指定した下記構文だとするとうまくいきました。
ところが、2行目のCells(1,1)を、本来指定したいセルにするためCells(5,6)やRange("E3:F3")に変更するとエラーが出ます。
ファイル名にするセル番地の指定方法が間違っているのだと思うのですが、見よう見まねでやっているため行き詰っております。お知恵をお借りしたくどうかよろしくお願いします。

[条件]
 PDFにしたい範囲→セルA1:F60
 PDF保存先→デスクトップの「PDFデータ」フォルダ
 ファイル名にしたい値のセル→E3とF3を結合したセル

[セルA1の値をファイル名として指定した構文]
Dim TargetName As String
TargetName = Cells(1, 1) 

Range("A1:F60").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\ユーザ名\Desktop\PDFデータ" & "\" & TargetName & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Range("A1").Select
End Sub

A 回答 (3件)

こんばんは



>ファイル名にしたい値のセル→E3とF3を結合したセル
とのことなので・・・

>TargetName = Cells(1, 1)
の部分を
 TargetName = Range("E3").Text
に変えれば、ご質問のようになると思いますけれど。
(結合セルの場合、値は一番左上のセルの値となります)
    • good
    • 0
この回答へのお礼

お知恵ありがとうございます。
Range("E3")はやってみてダメだったのに、後ろに.Textを足すと嘘のようにやりたかったことが出来ました!!!
感動です。
PDF化は他にも展開したかったので本当に助かりました。
本当にありがとうございました<m(__)m>

お礼日時:2021/09/10 21:39

VBAは詳しくないのでダメかもしれません。


As StringですがCells(5,6)もStringですか。一応確認。
Dim TargetNameを使わずに、
Filename:= _
"C:\Users\ユーザ名\Desktop\PDFデータ" & "\" & Cells(1, 1).value & ".pdf"
などではダメですか。
    • good
    • 0
この回答へのお礼

お知恵ありがとうございます。
やってみたのですが構文の中でエラーが出てしまい色々といじっています。
奥が深いです・・・(T_T)

お礼日時:2021/09/10 21:34

こんばんは、


惜しい、、色々検証実験すれば、エラー部分は自己解決できそうですね。

結合セルの値は、一番上の一番左のセルアドレスになります。
結合セルのインデックス1のようにも出来ます。。

簡易な実験
Sub test() 'OK?
MsgBox (Range("E3").Value)
End Sub

Sub test1() 'エラー13 型がNG
MsgBox (Range("E3:F3").Value)
End Sub

TargetName = Cells(1, 1)で問題ないとの事なので、
他の構文は見ていません。
    • good
    • 0
この回答へのお礼

色々と試してみて力尽きてました。
惜しいと言っていただけて元気が出てきました!!
お知恵ありがとうございます。
なんかしっかりとVBAを勉強したくなっています。

お礼日時:2021/09/10 21:40

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

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


このQ&Aを見た人がよく見るQ&A