[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『PDF作成時に日付と保存された時刻を入力したいのです』(yomogi)
こんにちは。
いつもわからないことがあればこの掲示板を参考にさせてもらっています。
エクセルマクロ初心者ですが、私なりにいろいろ調べて、作成した見積書を
PDFで保存するマクロを組んでみましたが、
いざ実施してみると、同じファイル名となったものは、自動的に上書きされて
しまうことがわかりました。
自分なり考えたところ、PDF化された日付と時刻をファイル名に設定できれば、
同じものは存在せず、全て保存出来るようになるのではと思い、試行錯誤しましたが、
上手くいかず、ご相談させていただく次第です。
是非ともご教示いただければと思います。
また、他に良い方法がありましたらアドバイスをお願いします。
作成したマクロ
==================================
Private Sub PDF保存_Click()
Dim MyName As String
MyName = ThisWorkbook.Path & _
"\" & _
Format(Range("AV2").Value, "yyyymmdd") & _
"見積書#" & _
Range("I6").Value
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _ Filename:=MyName
End Sub
==================================
※ セル「AV2」には、TODAY関数によってセットされた、
「日付(yyyy/mm/dd)が表示されています。
宜しくお願い申し上げます。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
フォーマットを"yyyymmddhhmmss"とかにして おいて、Range("AV2")を再計算すればいける のではないでしょうか。 (隠居じーさん) 2020/01/28(火) 11:11
MyName = ThisWorkbook.Path & "\見積書#" & _ Me.Range("I6").Value & "_" & _ Format(Me.Range("AV2").Value, "YYYYMMDD") & _ "(" & Format(Now(), "YYYYMMDDHHNNSS") & ")"
こんな感じではいかがでしょうか?
(まっつわん) 2020/01/28(火) 11:21
しかしながら、AV2セル参照だと、AV2セルを再計算した時点の日時を記憶したままなので、現在時間にはならないです。 なので、まっつわんさんの書いたように、マクロ内で日時を得る必要があるでしょうね。
(???) 2020/01/28(火) 11:26
そもそもTODAY関数だと日付のみで時刻部分は0になる。 (ねむねむ) 2020/01/28(火) 11:30
Sub 実験01() Dim 保存パス As String, tmp As String
With ActiveSheet 保存パス = ThisWorkbook.Path & "\" & Format(.Range("AV2").Value, "yyyymmdd") & "見積書#" & .Range("I6").Value
tmp = Dir(保存パス & ".pdf") Do Until tmp = "" 保存パス = 保存パス & "(1)" tmp = Dir(保存パス & ".pdf") Loop
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=保存パス End With End Sub
まぁ、みなさんが指摘されているように、now関数で時刻まで含めて取得し、秒までファイル名にすればかぶることは無さそうですが・・・
Sub 実験02() Dim 保存パス As String, tmp As String
With ActiveSheet 保存パス = ThisWorkbook.Path & "\" & Format(Now, "yyyymmdd_hhmmss") & "見積書#" & .Range("I6").Value .ExportAsFixedFormat Type:=xlTypePDF, Filename:=保存パス End With End Sub
(もこな2) 2020/01/28(火) 12:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.