
下記コードで、PDFを作成し任意のフォルダー(この場合には 「"C:\sample"」)に保存するのですが、保存先のフォルダーにすでに同じ名前のデータがある場合、上書きせずに、新しいデータとして保存するにはどうすればいいでしょうか?
新しいデータにはわかりやすい様に名前の後ろに「(2)、(3)、、」といったように番号を自動でふってもらえるようになると助かります。
よろしくお願いいたします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Const OutPath As String = "C:\sample"
Dim FileName As String
FileName = Range("G11").Value & "." & Range("J11").Value & "." & Format(Range("N2").Value, "yymmdd") & "." & Range("D15").Value & ".pdf"
Worksheets("注文書").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=OutPath & "\" & FileName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
No.1ベストアンサー
- 回答日時:
以下のようにしてください。
GetNewNameが名前が重複したとき、重複しない名前を探しだし、
それを返します。
Public Sub sample()
Const outpath As String = "C:\sample"
Dim baseName As String
Dim fullpath As String
Worksheets("注文書").Select
baseName = Range("G11").Value & "." & Range("J11").Value & "." & Format(Range("N2").Value, "yymmdd") & "." & Range("D15").Value
fullpath = GetNewName(outpath, baseName, ".pdf")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=fullpath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
MsgBox (fullpath & "へ出力完了")
End Sub
Private Function GetNewName(ByVal outpath As String, ByVal base As String, ByVal ext As String) As String
Dim fullpath As String
Dim seq As Long
seq = 1
Do
If seq = 1 Then
fullpath = outpath & "\" & base & ext
Else
fullpath = outpath & "\" & base & "(" & seq & ")" & ext
End If
seq = seq + 1
Loop While Dir(fullpath) <> ""
GetNewName = fullpath
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
-
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
-
4
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
5
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
【Excel VBA】PDFを作成して,指定したフォルダに保存するコードについて
その他(Microsoft Office)
-
8
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
9
Excelマクロのエラーを解決したいです。
Visual Basic(VBA)
-
10
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
-
11
エクセル マクロ
Excel(エクセル)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
Excel VBAで確認なしで上書き保存
Access(アクセス)
-
14
エクセル マクロを使って同じフォルダ内にPDF保存したい。
Excel(エクセル)
-
15
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
16
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
17
日付を入力したセルをファイル名にして保存するには
Excel(エクセル)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
20
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
スイッチが二台あり、別々のア...
-
vba マージエリアの行数を非表...
-
高校1年生情報の問題について。
-
VB.NET Excelを読み込んでDataT...
-
SJISで、全角文字Aの文字コード...
-
VB.NETでMSComm が追加できず?
-
ffftpでファイル取得が0バイト...
-
vba 空のデータをSplitする時の...
-
【VB.NET】App.configにファイ...
-
aspxをhtmlに変換する方法について
-
Windows10にデュアルブートでXP...
-
エクセルのマクロについて教え...
-
VBAでPDFを作成する際、同じ名...
-
VBAでPDF作成をしたあと、指定...
-
グラフをC#のASP.net MVCで表示...
-
コマンドプロンプトの窓の起動...
-
Windowsで複数のファイルを同じ...
-
SPIの対策は参考書でやるべきか?
-
LEDで電光掲示板に「A B C D E...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでPDFを作成する際、同じ名...
-
【VBA】Excelの特定範囲のセル...
-
どのバージョンのイラレを購入...
-
Illustratorでのロゴ出力について
-
Open OffceカルクとMSエクセル...
-
epsファイルが開けない。
-
PDFのデータをフリーのXChenge-...
-
PowerPointで保存ができません。
-
EXCELで昇順並び替えを元に戻す
-
windowsのイラストレータで作っ...
-
助けてください。エクセルのグ...
-
フォトショップからイラストレ...
-
EXCEL のドキュメントの回復に...
-
Xperiaを使ってるのですがギャ...
-
トンボ内をpdfに書き出したい
-
Illustratorでアートボード内だ...
-
Illustrator 中の要素ごとアー...
-
イラストレーターで印刷範囲が...
-
イラストレーターでオブジェク...
-
他のアートボードに同じ位置で...
おすすめ情報