【やりたい事】
PDFファイルを自動作成、保管するコードを、本サイトの指導を頂きながら
作りました。今は、決まったフォルダにしか保管は出来ません。
※コードは以下記参照
作成されるファイルは下記のように、日付が先頭に不可されます。
同PDFを
1番なら、フォルダの1番へ保管
2番なら、フォルダの2番へ保管
のうように選択して、自動で各フォルダへ保管できるコードを作りたいです。
作成された、PDFの日付にしたがって、月ごとのフォルダへ保管したいというイメージです
ご存じの方、今したら教えて下さい
【マクロにて作成されるPDF】
1番⇒20230716 鈴木さん みかん.pdf
2番⇒20230816 鈴木さん みかん.pdf
【既に作成されているフォルダ】
1番⇒7月
2番⇒8月
3番⇒9月
【コード:動きます】
Sub 先頭に日付付加ファイルをPDF出力()
Dim fileName As String
Dim TargetName As String
TargetName = Format(Date, "yyyymmdd")
fileName = "C:\Users\Owner\Desktop\月ごとフォルダ\7月\" & TargetName & " " & Worksheets("入力シート").Range("A1") & "さん" & " " & Range("A2") & ".pdf"
Sheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName 'sheet1をPDF出力
End Sub
No.4ベストアンサー
- 回答日時:
No.2です。
>参考に以下、コード作りました。が、動きませんでした。
>誤りコードあれば教えて下さい。
私が回答に書いたコードをそのまま使ってもよかったのですが、きちんと理解するために「m月」という変数を使って、ここに月から導かれるフォルダ名を格納するという方法をおとりになったのだと思いいます。
そこまではよかったのでが、「変数名」と「文字列」の使い分けができていません。filename = "C:\Users\Owner\・・・・のコードに誤りがあります。
あくまでも「m月」は変数名ですので、正しいコードは
fileName = "C:\Users\Owner\Desktop\月ごとフォルダ\" & m月 & "\" & TargetName & " " & Worksheets("入力シート").Range("A1") & "さん" & " " & Range("A2") & ".pdf"
です。
素早い回答ならびに1~10まで
指導ありがとうございます。
文字列としての変数の為
普通の文字列と同じように
アンドにて、つなげるんですね
ターゲットネームっていう変数も
同じ要領にてつなげているのに
気付きました
認識違っていればご指導下さい
いつもご指導ありがとうございます
No.3
- 回答日時:
No1です。
>他の保存してあったファイルまで、消えたり、
>上書きされたりはしませんでしょうか???
同じファイル名で出力すれば、当然のことながら上書きされます。
VBAの構文等での通常のエラーの範囲であれば、消えることはないと思います。
アドバイスありがとうございます。
参考に以下、コード作りました。が、動きませんでした。
誤りコードあれば教えて下さい。
Sub 先頭に日付付加ファイルをPDF出力()
Dim fileName As String
Dim TargetName As String
Dim m月 As String
TargetName = Format(Date, "yyyymmdd")
m月 = Format(Date, "m月")
fileName = "C:\Users\Owner\Desktop\月ごとフォルダ\ m月 \" & TargetName & " " & Worksheets("入力シート").Range("A1") & "さん" & " " & Range("A2") & ".pdf"
Sheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName 'sheet1をPDF出力
End Sub
No.2
- 回答日時:
>1番なら、フォルダの1番へ保管
>2番なら、フォルダの2番へ保管
という説明ですが、何が、あるいはどこが1番なのでしょうか?
(1)PDFファイルのファイル名の先頭に日付が付加され、1番、2番という「番号」が何かまたはどこかにあるらしいこと
(2)フォルダは7月,8月,9月の3つが既に作成済みであり、こちらも1番、2番、3番という「番号」が何かまたはどこかにあるらしいこと
は理解できますが、1番、2番・・・という番号と、ファイル、フォルダの関係性が説明されていません。
No.1さんの回答のように、ファイル名の「月」とフォルダ名の「月」を一致させて保存するということなら、保存するパス名をNo.1さんの回答に沿って、Format(Date, "m月")で取得して、保存するファイルのパスを変更すればよいので、fileName =・・・・・・のコードを
fileName = "C:\Users\Owner\Desktop\月ごとフォルダ\" & Format(Date, "m月") & "\" & TargetName & " " & Worksheets("入力シート").Range("A1") & "さん" & " " & Range("A2") & ".pdf"
に修正すればよいだけです。
説明不足でよく判らない「番号」は無視して、回答してしまいましたが、上記処理には、1番、2番は何処にも登場しません。
仮に、上記の処理がご質問者が知りたいことだとすると、ご質問者の説明に何故、1番、2番・・・が登場するのか全く判りません。
1~10まで丁寧にアドバイスありがとうございます。
参考に以下、コード作りました。が、動きませんでした。
誤りコードあれば教えて下さい。
Sub 先頭に日付付加ファイルをPDF出力()
Dim fileName As String
Dim TargetName As String
Dim m月 As String
TargetName = Format(Date, "yyyymmdd")
m月 = Format(Date, "m月")
fileName = "C:\Users\Owner\Desktop\月ごとフォルダ\ m月 \" & TargetName & " " & Worksheets("入力シート").Range("A1") & "さん" & " " & Range("A2") & ".pdf"
Sheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName 'sheet1をPDF出力
End Sub
No.1
- 回答日時:
こんにちは
私にはご質問の文章がよく理解できないので、勝手に以下と解釈してみました。
「実行する際の日付に応じて、保存フォルダを「〇月」と月別に分けたい」
(月の数値は、1、2・・・10、11、12で前ゼロではない)
もしも、それでよいのなら、日付を附しているのと同様に、
Format(Date, "m月")
で、「〇月」の文字列を得ることができますので、ご提示の
> ~\月ごとフォルダ\7月\~
と固定で指定しているパスの「〇月」の部分に入るようにすれば宜しいのではないでしょうか?
※ 意味が違う場合は、スルーしてください。
回答ありがとうございます
早速、作ってみます
なお、例えば8月フォルダには既に
PDFが、沢山、保存されているのですが
このマクロがエラーでたり失敗した
際に、他の保存してあったファイルまで、消えたり、上書きされたりは
しませんでしょうか???
なお、当たり前ですが、質問の
責任は全てこちらにありますので
気軽に答えて欲しいです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/02 11:48
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
ファイル名を今日の日付、時刻で保存する
Visual Basic(VBA)
-
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
-
4
ファイル名と同名のフォルダを自動作成して移動させる方法はありますか?
Access(アクセス)
-
5
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
6
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
7
マクロ VBA ファイル名を連番でつけたいのですが
Access(アクセス)
-
8
VBA セル入力された日付データから年月のみを取り出してファイル名につけたい
Access(アクセス)
-
9
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
10
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
11
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
12
エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
Excel VBA 同じ名前のフォルダ...
-
同一フォルダ内の別ブックから...
-
VBA フォルダ名に特定の文字を...
-
【マクロ】ファイル名の日付に...
-
ディレクトリ名変更してコピー...
-
VBA 最新のフォルダ取得
-
Downloaded Program Filesはど...
-
デスクトップの画像をhtmlに表...
-
Access VBA で フォルダ権限...
-
保存先のフォルダ名を指定した...
-
VBA フォルダの複数選択ができない
-
Hitachi Embedded Workshop (HE...
-
エクセルのマクロについて教え...
-
エクセルで、マクロを使わずに...
-
VS2005で"定義へ移動"ができません
-
多量のファイルをフォルダに自...
-
ファイル名を取得し、ログファ...
-
Dreamweaverでイメージを挿入す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
パス名に2バイト文字(マルチバ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
バッチファイルで指定フォルダ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
excelマクロ 冒頭3文字が一致す...
-
【マクロ】ファイル名の日付に...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
多量のファイルをフォルダに自...
-
C ファイル出力で、フォルダが...
-
保存先のフォルダ名を指定した...
-
vbsで選択ダイアログを表示した...
-
Excel VBA 同じ名前のフォルダ...
おすすめ情報