エクセルマクロでいろいろな処理をし、結果を保存するという作業を繰り返していると、似たようなファイルが多数生じてしまい、どれがどれだかわからなくなることってありますよね。
そんな状況を避けるためには、ファイル名に日付を付けて保存しておくと便利です。
というわけでこの記事では、新たに作成するエクセルファイルに今日の日付(+何かしらの名前)を付けて保存する方法をご紹介します。
日付は20220221というようにyyyymmddという形式で使用するようにしています。
それではさっそくやっていきましょう。
VBAで日付を取得する方法
まずはVBA上で日付を取得する方法をご紹介します。
それは非常に簡単で、
で取得できます。
実際に
Msgbox Date
を実行してみましょう。
すると以下のようなメッセージが出現しました。
今回はこのスキルで日付を取得してそれを新しいファイル名前に使用していきます。
Dateで取得した日付からスラッシュ【/】を除去する方法
先ほどDateで取得した日付にはスラッシュが入っていたと思います。
今回はスラッシュなしで20220221といったようにyyyymmdd形式で使用したいので、先ほど取得した日付からスラッシュをまずは除去しましょう。
そのやり方は以下通りです。
やっていることは先ほどのDateで取得した文字列の中に入っている “/” (スラッシュ) を “”(空欄)にReplaceというスキルを使って置き換えているだけです。
Msgbox Replace(Date, “/”, “”)
で確認してみましょう。
問題なく実行できましたね。
日付を新しいファイル名として使用する方法
それでは使いたい形式で日付を取得できましたので、実際に新しいファイル名として費用してみましょう。
今回はマクロ実行を行うエクセルファイル(.xlsm)を、先ほど取得した日付が入った新しいファイル(.xlsx)として保存してみます。
まぁここはあなたの状況次第ですので私がこれから何をやるかは深く考えなくてOKです。
とりあえず以下のサンプルコードで先ほど言った内容を実施してみます。
Sub use_date_file()
Dim new_file As Variant
Application.DisplayAlerts = False
new_file = Replace(Date, "/", "") & "_test"
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & new_file & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
new_file(4行目)に先ほど紹介したReplace(Date,”/”,””)が使われているのがわかると思います。
このサンプルコードを実行してみましょう。
〇実行前のマクロフォルダの中身
〇実行後のマクロフォルダの中身
問題なく今日の日付が入った新しいファイルが作成されていますね。
おわりに
というわけで今回は、エクセルVBAをつかって今日の日付を新しいファイルの名前として使用する方法をご紹介しました。
ぜひ業務効率化にご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント