
エクセル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も見ています
-
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
-
4
Excelの選択範囲を特定のセル値をファイル名にしてPDFで保存する
Excel(エクセル)
-
5
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
-
6
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
7
マクロボタンを押すと、ファイル名を“日付(年月日)_文字.xlsx”にして指定ファイルに保存したいの
Excel(エクセル)
-
8
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
9
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
10
vba マクロでファイル名をつけて保存するやり方を教えてください。 マクロで作成したエクセルファイル
Visual Basic(VBA)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
Excel VBA セルの値をファイル名にして保存するには
Visual Basic(VBA)
-
13
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
14
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
15
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
16
[Excel] ファイル名を変数指定して保存するマクロ
Excel(エクセル)
-
17
excelマクロ、任意セルの値で名前を付けて任意のフォルダに保存
Visual Basic(VBA)
-
18
VBA 新規ファイルを元ファイルと同じ場所に保存する方法
Excel(エクセル)
-
19
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
20
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
libreoffice calcで行を挿入し...
-
貼り付けで複数セルに貼り付けたい
-
数式を残したまま、別のセルに...
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セル番地の入力されているセル...
-
エクセルで名前を名字と氏名に...
-
エクセルで Aならば1. Bならば2...
-
【マクロ】アクティブセルの2...
-
Excelについての質問です 並べ...
-
生化学分野 分光学 ランベル...
-
excelで日付関数の文字列変換の...
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
ペイントから切取って、エクセ...
-
Excel2012の関数について
-
エクセルで、複数の参照範囲を...
-
Excel マクロについて!! 添付...
-
Excelでのコメント表示位置
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
スプレッドシートで複数のプル...
-
excelで日付関数の文字列変換の...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
エクセルの書式設定の表示形式...
-
EXCEL VBA セルに既に入...
-
excelの特定のセルの隣のセル指...
-
エクセルのセルの枠を超えて文...
-
Excelでのコメント表示位置
-
エクセル オートフィルタで絞...
-
Excelで数式内の文字色を一部だ...
おすすめ情報