Excel VBA入門 その42:今日の日付のフォルダを作成する方法

エクセルVBA VBA



今日の日付のフォルダを作ることをいちいち手動でするのは面倒ですよね。

今回は、VBAを使って今日の日付のフォルダを作る方法について説明します。



今日の日付のフォルダを作成する方法

今日の日付のフォルダを作成する方法【VBAサンプルコード】

今回紹介するVBAサンプルコードは、例えば本日の日付が「2020年3月3日」ならば、フォルダ名が「20200303」となるフォルダを作成します。

フォルダ作成場所は、フォルダ作成マクロを実行させているエクセルファイルが存在する場所に作成されます。

フォルダ名を「20200303」以外の他の日付表示にする方法も後半で説明します。

Sub 今日の日付のフォルダ作成()
    Dim fld As String
    fld = ThisWorkbook.Path
    fld = fld & "\" & Format(Date, "yyyymmdd")  
    If Not Format(Date, "yyyymmdd") = Dir(fld, vbDirectory) Then
        MkDir fld
    Else
        MsgBox "本日の日付のフォルダはすでに存在します"
        Exit Sub
    End If
End Sub

サンプルコードの動作・解説

fld = ThisWorkbook.Path で、変数fldにマクロを実行させているエクセルファイルのパスを格納します。

fld = fld & “\” & Format(Date, “yyyymmdd”) で、変数fldに今日の日付の文字列(フォルダ名になる)を追加し、「パス+フォルダ名」を変数fldに格納し直します。

Dateは、本日の日付を取得する関数です。

“yyyymmdd” は、2020年3月3日ならば、「20200303」のような日付表示になります。

If Not Format(Date, “yyyymmdd”) = Dir(fld, vbDirectory) Then で、もしすでに今日の日付のフォルダ名に一致するフォルダが存在しないか判定をします。

もし、一致するフォルダが存在しなければ、MkDir fld で本日の日付のフォルダ名のフォルダを作成します。

もし、 一致するフォルダが存在すれば、「本日の日付のフォルダはすでに存在します」のメッセージを表示してExit Subでマクロを終了させます。

フォルダ名を他の日付表示にする方法

他の日付表示のフォルダ名にしたい場合は、サンプルコードの4行目と5行目の “yyyymmdd” の部分を変えることになります。

日付の例は以下の表のようになります。

文字説明
yy西暦年の下2桁の数値00~99
yyyy西暦年の4桁の数値100~9999
m月を表し、1桁の場合は先頭に0を付けない1~12
mm月を表し、1桁の場合は先頭に0を付ける01~12
d日を表し、1桁の場合は先頭に0を付けない1~31
dd日を表し、1桁の場合は先頭に0を付ける01~31

例えば、フォルダ名を「202033」のように月日の頭に0を付けない場合は、“yyyymd”のように4行目と5行目に記述します。

コメント

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