- ベストアンサー
VBAを使って名前をつけて保存する方法
- VBAを使用して名前をつけて保存する方法について教えていただきました。保存先は指定したフォルダで、ファイル名は本日の日付と連番で作成されます。
- また、指定したフォルダに保存する際、日付が変わった場合でも連番を最初からカウントするようにしたいとのことです。
- 具体的な変更方法について、アドバイスをいただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
日付を追加しました。 「連番.dat」ファイルを削除して最初の状態で試してみてください。 Sub 名前を付けて保存() Dim wSeq As String Dim wStr As String Dim Flnm As String Dim wFlnm As String Dim sI As Integer Dim eI As Integer Dim wDir As String Dim ER As Boolean Dim xDate As String ' Sheets("データー").Select Range("C3").Select ActiveWorkbook.Save wDir = "\\Jooo\センタ\AA\CC\" Flnm = wDir & Format(Date, "【mmdd】") & ".xls" wFlnm = Flnm If Flnm = "False" Then Exit Sub End If ' xDate = Format(Date, "mmdd") wSeq = 0 wSeq = Get_Seq(xDate, wDir, ER) If ER Then wStr = "" Else wStr = "(" & wSeq & ")" End If Flnm = Left(wFlnm, Len(wFlnm) - 4) & wStr & ".xls" ActiveWorkbook.SaveAs Filename:=Flnm Call Put_Seq(xDate, wDir, wSeq) End Sub '連番取得 Function Get_Seq(xDate As String, wDir As String, ER As Boolean) As Integer Dim n As Long Dim wDate As String Dim Seq As Integer ' ER = False Seq = 0 On Error GoTo ExitER n = FreeFile Open wDir & "連番.dat" For Input As #n Input #n, wDate, Seq Close #n If wDate = xDate Then Get_Seq = Seq + 1 Else Get_Seq = 1 End If Exit Function ExitER: ER = True Seq = 1 On Error GoTo 0 End Function '連番保存 Function Put_Seq(xDate As String, wDir As String, wSeq As String) Dim n As Long n = FreeFile Open wDir & "連番.dat" For Output As #n Print #n, xDate & "," & wSeq Close #n End Function
お礼
今日やってみて上手くいきました。何度もありがとうごさいます。