下記コードで実行をすると、実行時エラー"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
No.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
こんにちは!
ご回答ありがとうございます!
ご指摘頂きました通り、「PDFの名前に使用できない記号が選択セルに入ってたこと」が原因でした。
原因がわかると初歩的なことだったと思うのですが、
全く解決法が分からず困り果てていたので、本当に助かりました!
ありがとうございました!
No.2
- 回答日時:
こんにちは
想像の範疇ではありますが、このVBAを書いたExcelBookは保存されていないのではないでしょうか?
新規ブックでThisWorkbook.Pathのような自ブックの情報を使う場合、
1度実行前にブックを保存する必要があります。
No.1
- 回答日時:
違うかもですが、変数: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"
としてみるとか?
こんにちは!
ご回答頂きありがとうございました。
原因が発覚しまして、「PDFの名前に使えない記号が選択セルに入っていたから」でした。
ご提案頂きありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
VBA PDFで保存するマクロで実行時エラー 1004
Visual Basic(VBA)
-
エラー1004 PDFの保存ができません。解決方法を教えてください。
Visual Basic(VBA)
-
Excel VBA シートを指定してpdf化
Visual Basic(VBA)
-
-
4
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
5
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
6
【VBA】PDF作成のコードでコンパイルエラーになってしまいます。
Excel(エクセル)
-
7
【Excel VBA】PDFを作成して,指定したフォルダに保存するコードについて
その他(Microsoft Office)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
マクロ、PDFを任意のフォルダへ保存
Excel(エクセル)
-
10
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
11
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
12
excel マクロ PDF化の際のエラーについて
Visual Basic(VBA)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
15
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
16
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
17
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
18
エクセルのセル内の余白の設定って出来るのでしょうか?
Excel(エクセル)
-
19
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
20
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルのシート名変更で重複...
-
VBAで指定シート以外の選択
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
特定の文字を含むシートだけマ...
-
【Excel VBA】書き込み先のシー...
-
【VBA】色のついたシート名を取得
-
Excel VBA リンク先をシート...
-
VBA 検索して一致したセル...
-
同じ作業を複数のシートに実行...
-
別のシートから値を取得するとき
-
Worksheet_Changeの内容を標準...
-
シート名の一部を変更する方法...
-
select case内で配列の値を貼り...
-
実行時エラー'1004': WorkSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
エクセルのシート名変更で重複...
-
実行時エラー1004「Select メソ...
-
VBAで同じシート名のコピー時は...
-
エクセルで通し番号を入れてチ...
-
同じ作業を複数のシートに実行...
-
Excel VBA リンク先をシート...
-
ExcelのVBAのマクロで他のシー...
-
Vba UserformからExcelシートの...
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
おすすめ情報
こんにちは!
ご回答ありがとうございます。
保存を実行した後にもう一度試しましたが、同じエラーが出てしまいました。
同じコードで別のシートを選択して実行するとちゃんとPDFは作成されるので、シートの設定か何かがおかしいのでしょうか?
VBA初心者なので、質問の内容がアバウトになってしまっているかもしれませんが、何か他に考えうる原因はありますでしょうか?
宜しくお願い致します。