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

下記コードで実行をすると、実行時エラー"1004"と出て、「ドキュメントを保存できませんでした。ドキュメントが開いているか、保存時にエラーが発生した可能性があります。」
と出てしまい実行できません。
デバックを見ると、
「ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=MyName」
の部分が指摘されるのですが、別のブックで全く同じコードを使っているものは正常に実行されます。
どこを直せばいのでしょうか?
お手数ですが、お力を貸して頂けると幸いです。
宜しくお願い致します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub PDF出力()

Worksheets(2).Select

Dim MyName As String

MyName = ThisWorkbook.Path & _
"\" & _
Format(Range("C10").Value) & _
"・" & _
Range("B10").Value & "・" & Range("I9").Value & "・" & Format(Range("E10").Value, "mmdd")

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=MyName

Worksheets(1).Select

End Sub

質問者からの補足コメント

  • こんにちは!
    ご回答ありがとうございます。

    保存を実行した後にもう一度試しましたが、同じエラーが出てしまいました。
    同じコードで別のシートを選択して実行するとちゃんとPDFは作成されるので、シートの設定か何かがおかしいのでしょうか?
    VBA初心者なので、質問の内容がアバウトになってしまっているかもしれませんが、何か他に考えうる原因はありますでしょうか?
    宜しくお願い致します。

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/06/24 14:10

A 回答 (3件)

エラーの内容に書いてある通りと思いますが、


コードにある Worksheets(2).Select はワークシートインデックス2を指します。
シートタグの左から2番目のワークシート(ただし、グラフシートなどが左にある場合、それらを除く2番目)一番左にグラフシートは1シートある場合は3番目のシートタグのシート

もし、シート名と勘違いをされている場合は、Worksheets("2").Select ですので、念のためシート名の内容を確認してください。
スペースや半角スペース、数字文字の半角全角、
ただ、この場合でも Worksheets(2).Select でエラーが出るはずなので違いますね。
あと、.Valueプロパティを.Textプロパティに変更するとか(他のシートを対象にして実行されるのなら該当しないと思います)

ここから本題
可能性の高いエラー原因は、ファイル名設定にあると思います。
Format(Range("C10").Value) & _
"・" & _
Range("B10").Value & "・" & Range("I9").Value & "・" & Format(Range("E10").Value, "mmdd")

これは、選択された シートの セルの値を繋げてファイル名にしていると思うのですが、意図と合っていますか?

合っているとして 各値のどこかにシート名で使用できない文字が含まれているのではないでしょうか? ¥や/ <> など、、

ActiveSheet.ExportAsFixedFormat _の一行前に
Debug.Print MyName や
MsgBox (MyName) などを入れ確認してみてください。

もし、ファイル名は常に同じWorksheets(1)から付けたいのならば
Worksheets(1)がアクティブな内にMyNameの代入を済ませるか

下記のようなコードが良いかも知れません。

Sub PDF出力()
Dim MyName As String
With Worksheets(1)
’シート1のセルでシート名設定
MyName = ThisWorkbook.Path & _
"\" & _
Format(.Range("C10").Value) & _
"・" & _
.Range("B10").Value & "・" & .Range("I9").Value & "・" & Format(.Range("E10").Value, "mmdd")
End With

’シート2をPDF出力
Worksheets(2).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=MyName
End Sub
    • good
    • 2
この回答へのお礼

こんにちは!
ご回答ありがとうございます!

ご指摘頂きました通り、「PDFの名前に使用できない記号が選択セルに入ってたこと」が原因でした。
原因がわかると初歩的なことだったと思うのですが、
全く解決法が分からず困り果てていたので、本当に助かりました!

ありがとうございました!

お礼日時:2021/06/25 09:27

こんにちは


想像の範疇ではありますが、このVBAを書いたExcelBookは保存されていないのではないでしょうか?

新規ブックでThisWorkbook.Pathのような自ブックの情報を使う場合、
1度実行前にブックを保存する必要があります。
この回答への補足あり
    • good
    • 0

違うかもですが、変数:MyName ってフォルダ名?(ファイル名?)はあるみたいですけど、拡張子(.pdf)がないと思えるのですが?



>Format(Range("C10").Value) & _
"・" & _
Range("B10").Value & "・" & Range("I9").Value & "・" & Format(Range("E10").Value, "mmdd")

これがファイル名であるなら

Format(Range("C10").Value) & _
"・" & _
Range("B10").Value & "・" & Range("I9").Value & "・" & Format(Range("E10").Value, "mmdd") & ".pdf"

としてみるとか?
    • good
    • 0
この回答へのお礼

こんにちは!
ご回答頂きありがとうございました。

原因が発覚しまして、「PDFの名前に使えない記号が選択セルに入っていたから」でした。
ご提案頂きありがとうございました!

お礼日時:2021/06/25 09:22

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

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


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