エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。
おそれいります。こちらで数々のエクセルVBAを教えていただいておりますが、最近、ご教授頂いたマクロで、ファイル名を日付けにして、PDFにして保存するということをしています。更に同じ日付け名が2つ以上、作った場合には日付けに枝番がつくようにもしています。(上書きにならないようにするため 例:20230630(1).pdf)
このファイル名を日付けをやめて、ワークシートのセルの値(文字列)に変更しようと、コードを触ってみたのですが、VBA初心者の私には、結局、分からずじまいでした。
すみませんが、以下のVBAコード日付けからセル値に変更していただけないでしょうか?
宜しくご教授お願い致します。
Sub PDF()
'
' pdf Macro
ActiveSheet.PrintOut
Const Folder As String = "C:¥Users¥Home¥Desktop"
Dim fname As String
Dim fpath As String
Dim i As Long
Const ext = ".pdf"
i = 0
fname = Format(Date, "yyyymmdd")
fpath = Folder & "¥" & fname & ext
i = 0
While Dir(fpath) <> ""
i = i + 1
fpath = Folder & "¥" & fname & Format(i, "(#)") & ext
Wend
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fpath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
No.6ベストアンサー
- 回答日時:
>私はセルを標準にして、2023年6月23日と言う文字(数字も入ってますが)で入れていました。
もし、「2023年6月23日」 と 表示されたままの文字をそのまま使いたいなら、
fname = Range("H3").Value
ではなく、
fname = Range("H3").Text
とすれば、みたままの状態の文字になります。
(fname=2023年6月23日 となります)
ありがとうございます。全て解決いたしました。長々とお付き合い頂きありがとうございました。
tatsumaru77様のおかげで、さらに、VBAの勉強に拍車がかりそうです。感謝申し上げます。
No.5
- 回答日時:
>ありがとうございます。
文字です。¥/:*?”等の文字は含んでいないと解釈しました。
H3の内容が、あなたが期待したものか確認するために、
fname = Range("H3").Value
の次の行へ
MsgBox ("fname=" & fname)
を追加して実行してみてください。
もし、H3にABCが設定されていれば
fname=ABC
のようにメッセージボックスに表示されるはずです。
H3に設定した内容が表示されるか確認していただけませんでしょうか。
追伸:
こちらでH3に AB/C を設定し、実行すると、
実行時エラー1004
ドキュメントを保存できませんでした。ドキュメントが開いているか、保存時にエラーが発生した可能性があります。
のエラーが発生することを確認しています。
この場合、/の文字があるために、このエラーが発生しています。
従って、エラーが発生する要因としては、
①使用してはいけない文字をH3に設定している。(/の文字を設定)
②H3に設定した文字がfnameに反映されていない。
(他のシートのH3に内容がfname反映されている)
のどちらかです。
ありがとうございます。ABCでうまくいきました。実際は、色々な文字が、はいります。たとえば、普通の文字を入れるパターン、または、不特定の日付けを入れるパターンもあり、私はセルを標準にして、2023年6月23日と言う文字(数字も入ってますが)で入れていました。よく見ると数式バーには、2023スラッシュ6 スラッシュ 23となっており、やはり、おっしゃる通り、禁止文字があるからだと考えます。申し訳ありません。
ちなみに、禁止文字を使うことは、VBAでは、不可能ですね!ありがとうございます
No.4
- 回答日時:
>ご指示頂いた内容を書き換えましたが、実行時エラーがでてしまいます。
H3セルの内容は、具体的にどのような値が設定されていますか。
ファイル名として¥/:*?”等の文字は使えません。
使えない文字をファイル名として設定していませんでしょうか。
No.3
- 回答日時:
>ご指示頂いた内容を書き換えましたが、実行時エラーがでてしまいます。
エラーは、どのようなエラーでしょうか。どの行で発生していますか。
前提として
①H3のセルがあるシートと印刷するシートは、同じシートであること。
②上記のシートを表示した状態(上記のシートがアクティブシート)
でマクロを実行すること。
が必須です。①②の条件は守られていますか。
何度も、お付き合い頂き感謝致します。エラーは、
実行時エラー1004
ドキュメントを保存できませんでした。ドキュメントが開いているか、保存時にエラーが発生した可能性があります。
と、でます。
①は、PDFに変換された画面を印刷しています。
日付けを名前にしていた場合は、印刷はできていました。
②エクセルのワークシート上では、アクティブな状態だと、私は思っているのですが、ちがうのでしょうか?
結局、①②が守られていないのですかね?ただ、日付けの場合は、実行できていたので、セルの値を名前にすることは、単にゴード内容を触るだけでいい、私の無知な判断が、間違いなのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/03 16:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 13:29
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBA セルの値をファイル名にして保存するには
Visual Basic(VBA)
-
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
-
4
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
5
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
6
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
7
Excelの選択範囲を特定のセル値をファイル名にしてPDFで保存する
Excel(エクセル)
-
8
Excelでセル内の文字をファイル名にする方法と、下のSheet1タブを2列にする方法は?
Excel(エクセル)
-
9
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
10
VBA PDF ファイル名をセルからつける
Excel(エクセル)
-
11
マクロ、PDFを任意のフォルダへ保存
Excel(エクセル)
-
12
excelで複数セル値を組合わせてファイル名にする方法
Excel(エクセル)
-
13
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
[Excel] ファイル名を変数指定して保存するマクロ
Excel(エクセル)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
コピーしたファイルのマクロを実行すると前のファイルが開く
Access(アクセス)
-
18
セルの値を使ってファイルを保存
Excel(エクセル)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで数式内の文字色を一部だ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
貼り付けで複数セルに貼り付けたい
-
Excelで教えてください。 バー...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
(Excel)数字記入セルの数値の後...
-
Excel2003 の『コメント』の編...
-
セルの高さ(行高)を求めるには?
-
エクセルでオブジェクトを常に...
-
EXCELのセルの中の半角カンマの...
-
VBAで特定の文字が入力されたセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセル 足して割る
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
EXCEL VBA セルに既に入...
-
【Excel】 セルの色での判断は...
-
(Excel)数字記入セルの数値の後...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
excelのCOUNTIF関数で、『範囲=...
-
Excel2003 の『コメント』の編...
-
枠に収まらない文字を非表示に...
-
Excelで住所を2つ(町名迄と番...
-
複数のセルのいずれかに数字が...
おすすめ情報