VBAコードでファイルをデスクトップに上書き保存し、処理時刻をファイル名に追加する方法

Visual Basic

VBA(Visual Basic for Applications)を使ってExcelファイルを加工し、特定の場所に保存する方法についての解説です。ここでは、デスクトップ上に保存する方法と、ファイル名に処理時刻を追加する方法について説明します。

1. VBAコードを使用してファイルを上書き保存する方法

まず、VBAを使用して特定のファイルを開き、必要な処理を行った後、デスクトップに上書き保存する方法を確認しましょう。基本的には、ファイルを開いて加工を行い、上書き保存するという流れになります。

以下のVBAコードでは、「加工.xlsm」を開き、その後「献立表.xlsx」を非表示で加工し、最終的に加工されたファイルをデスクトップに保存します。

Sub sumple() 
 Dim menuBook As String: menuBook = "C:\Users\○○\Downloads\献立表.xlsx" 
 If Dir(menuBook) = "" Then 
 MsgBox menuBook & " がありません", vbExclamation 
 Exit Sub 
 End If 
 Application.ScreenUpdating = False 
 With Workbooks.Open(menuBook) 
 .Worksheets("献立表").Range("J:L,AC:AE,AV:AX").Delete 
 .Worksheets("献立表").Range("D:F,T:V,AJ:AL").Insert 
 .Close True 
 End With 
 MsgBox "処理が完了しました!" 
End Sub

2. 処理時刻をファイル名に追加する方法

次に、処理時刻(YYYYMMDDHHMM形式)をファイル名に追加する方法です。この方法により、ファイル名に日付と時刻を組み込むことができます。

以下のコードでは、ファイル名に現在の日付と時刻を追加して保存しています。

Sub saveWithTimestamp() 
 Dim menuBook As String: menuBook = "C:\Users\○○\Downloads\献立表.xlsx" 
 If Dir(menuBook) = "" Then 
 MsgBox menuBook & " がありません", vbExclamation 
 Exit Sub 
 End If 
 Dim currentTime As String 
 currentTime = Format(Now, "yyyyMMddhhmm") 
 Dim savePath As String 
 savePath = "C:\Users\○○\Desktop\献立表(加工済み)_" & currentTime & ".xlsx" 
 Application.ScreenUpdating = False 
 With Workbooks.Open(menuBook) 
 .Worksheets("献立表").Range("J:L,AC:AE,AV:AX").Delete 
 .Worksheets("献立表").Range("D:F,T:V,AJ:AL").Insert 
 .SaveAs Filename:=savePath 
 .Close True 
 End With 
 MsgBox "処理が完了しました!" 
End Sub

3. タイムスタンプを正しくフォーマットする

処理時刻を正しく取得し、ファイル名に組み込むためには、VBAのFormat関数を使用します。この関数を使うことで、現在の日付と時刻を指定した形式(YYYYMMDDHHMM)で取得できます。

コード内のFormat(Now, "yyyyMMddhhmm")は、現在の日付と時刻を年、月、日、時、分の形式で表示し、それをファイル名に組み込んでいます。

4. 上書き保存とファイル名のリネーム

このコードを使用すると、元々あった「献立表.xlsx」をデスクトップに上書き保存することができます。また、ファイル名に処理時刻が追加されるため、同じファイル名で保存しても、ファイル名が重複しません。

もし処理が完了した後に確認したい場合は、指定したパスに保存されたファイルを確認してください。

5. まとめ

VBAを使ってExcelファイルを加工し、デスクトップに上書き保存する方法は、SaveAsメソッドを使用することで簡単に実現できます。さらに、ファイル名に処理時刻を追加することで、保存するたびにユニークなファイル名を作成することができます。今回のコード例を参考に、適切に処理を実行し、効率的にファイル管理を行いましょう。

コメント

タイトルとURLをコピーしました