Excel

【Excel】VBAマクロで今日の日付をyyyymmddで入力・ファイル名に追加・取得など(変数)する方法【Date関数、Format関数、Dir関数、Left関数、Mid関数】

当サイトでは記事内に広告を含みます

この記事ではVBAマクロで今日の日付をyyyymmddで入力・ファイル名・取得(変数など)する方法について解説していきます。

ポイントとしてはDate関数、Format関数、Dir関数、Left関数、Mid関数を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

 

VBAマクロで今日の日付を取得し、yyyymmddでアクティブセルに入力する方法【Date関数、Format関数】

それではまず、VBAマクロで今日の日付を取得し、yyyymmddでアクティブセル(選択したセル)に入力する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub kyouNoHizuke()
    
    'hensu sengen
    Dim hizukeYouso As Date
    
    'kyou no hizuke wo hizukeYouso hensu ni dainyu 
    hizukeYouso = Date
    
    'akutibu seru ni hizuke wo "yyyymmdd" no shoshiki de nyuuryoku 
    ActiveCell.Value = Format(hizukeYouso, "yyyymmdd")

End Sub

コードのAlt+F8を押し、マクロ選択画面でkyouNoHizuke関数を実行します。

 

このコードでは、まず変数hizukeYousoをDate型で宣言しています。

次に、Date関数を使って今日の日付を取得し、hizukeYouso変数に代入しています。

最後に、Format関数を使ってhizukeYouso変数の日付を”yyyymmdd”の書式に変換し、アクティブセルに入力しています。

 

VBAマクロで今日の日付をxlsxファイル名の末尾に追加する方法【フォルダ内の全xlsxにループ】【Dir関数、Left関数、Mid関数】

続いては、VBAマクロで今日の日付をxlsxファイル名の末尾に追加する方法について解説していきます。

指定フォルダ内の全xlsxファイルを対象に、ファイル名の末尾に今日の日付yyyymmddを追加します。

Dir関数でファイル一覧取得、Left関数・Mid関数でファイル名を分割、結合して新ファイル名を作成します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

Sub hizukewoTsuika()

    'hensu sengen
    Dim taishouForuda As String
    Dim taishouFairu As String
    Dim shin_namae As String
    Dim taishouFairuKakuchou As String
    Dim hizukeYouso As Date
    
    'taishou foruda no shitei
    taishouForuda = "C:\Users\hoge\Desktop\xlsxfolder\"
    
    'taishou fairu kakuchou ".xlsx" no shitei
    taishouFairuKakuchou = "*.xlsx"
    
    'taishouFairu hensu ni saisho no 1 fairu wo dainyu.
    taishouFairu = Dir(taishouForuda & taishouFairuKakuchou)
    
    'taishouFairu ga sonzai suru aida kurikaeshi shori
    Do While taishouFairu <> ""
        
        'fairu_namae hensu ni "." igo wo sakujo shita namae wo dainyu
        fairu_namae = Left(taishouFairu, InStrRev(taishouFairu, ".") - 1)
        
        'kyou no hizuke wo hizukeYouso hensu ni dainyu
        hizukeYouso = Date
        
        'shin_namae hensu ni "_yyyymmdd" wo tuika
        shin_namae = fairu_namae & "_" & Format(hizukeYouso, "yyyymmdd") & Mid(taishouFairu, InStrRev(taishouFairu, "."))
        
        'fairu namae wo henko
        Name taishouForuda & taishouFairu As taishouForuda & shin_namae
                
        'tsugi no taishouFairu wo dainyu
        taishouFairu = Dir
        
    Loop
    
End Sub

コードのAlt+F8を押し、マクロ選択画面でhizukewoTsuika関数を実行します。

 

このコードでは、まず変数を宣言しています。

taishouForudaには対象フォルダのパスを、taishouFairuKakuchouには対象ファイルの拡張子”.xlsx”を代入しています。

Dir関数を使って、対象フォルダ内の最初の1ファイルをtaishouFairu変数に代入しています。

Do~Loopで対象ファイルが存在する間、繰り返し処理を行います。

Left関数とInStrRev関数を使ってファイル名から拡張子を除いたものをfairu_namae変数に、Date関数で今日の日付を取得してhizukeYouso変数に代入しています。

fairu_namae変数と”_”とFormat関数で書式設定したhizukeYouso変数と拡張子を結合し、shin_namae変数に代入しています。

Name ステートメントでファイル名を変更し、Dir関数で次の対象ファイルを取得しています。

 

 

まとめ

以上が、VBAマクロで今日の日付をyyyymmddで入力・ファイル名・取得(変数など)する方法の解説でした。

ぜひ実際にコードを書いて試してみてくださいね。