Excel

【Excel】VBAマクロで年だけや年月や年月日の取得・抽出方法【Year, Month, Day, Format関数】

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

この記事では、VBAマクロで年だけや年月や年月日の取得・抽出方法について解説していきます。

ポイントとしては、`Year`関数、`Month`関数、`Day`関数、そして`Format`関数を使用することです。

マクロ初心者でもわかりやすいように、変数名を`aaaaa変数aaaaa`といった名称にしています。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

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

 

VBAマクロで年だけの取得・抽出方法【yyyy/mm/dd)から年(yyyy)だけ】

それではまず、年だけの取得・抽出方法について解説していきます。

この処理では、A列2行目から最終行までのyyyy/mm/dd形式の日付から年(yyyy)だけを取得し、隣の列に出力し、別名保存してみます。

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

Sub aaaaaExtractYearaaaaa()
    Dim aaaaaLastRowaaaaa As Long
    Dim aaaaaCounteraaaaa As Long
    Dim aaaaaDateCellaaaaa As Range
    Dim aaaaaSheetaaaaa As Worksheet
    
    Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1") '対象のシート名を設定
    aaaaaLastRowaaaaa = aaaaaSheetaaaaa.Cells(aaaaaSheetaaaaa.Rows.Count, "A").End(xlUp).Row 'A列の最終行を取得
    
    For aaaaaCounteraaaaa = 2 To aaaaaLastRowaaaaa '2行目から最終行までループ
        Set aaaaaDateCellaaaaa = aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "A") '日付が入力されている列"A"のセルを設定
        aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "B").Value = Year(aaaaaDateCellaaaaa.Value) '年だけを"B"列に表示
    Next aaaaaCounteraaaaa
End Sub

 

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

このコードでは、指定されたシートのA列に記載された日付から年の部分だけを取り出し、B列に表示させます。2行目から最終行までのデータに対して処理を行い、その結果を同じ行のB列に出力します。

これにより、年だけを抽出しすることができます。

【使用関数:Year関数】

 

VBAマクロで年月だけの取得・抽出方法【yyyy/mm/dd)から年月(yyyy/mm)まで】

続いては、年月だけの取得・抽出方法について解説していきます。

具体的には、日付形式(yyyy/mm/dd)から年(yyyy)と月(mm)までを抽出し、上と同様に隣列に表示させます。

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

Sub aaaaaExtractYearMonthaaaaa()
    Dim aaaaaLastRowaaaaa As Long
    Dim aaaaaCounteraaaaa As Long
    Dim aaaaaDateCellaaaaa As Range
    Dim aaaaaSheetaaaaa As Worksheet
    


    Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1")
    aaaaaLastRowaaaaa = aaaaaSheetaaaaa.Cells(aaaaaSheetaaaaa.Rows.Count, "A").End(xlUp).Row
    
    For aaaaaCounteraaaaa = 2 To aaaaaLastRowaaaaa
        Set aaaaaDateCellaaaaa = aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "A")
        aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "B").Value = Format(aaaaaDateCellaaaaa.Value, "yyyy/mm") '年月を"B"列に表示
    Next aaaaaCounteraaaaa
End Sub

 

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

このコードにより、指定したシートのA列にある日付から年と月を抽出し、B列に「yyyy/mm」の形式で表示します。

【使用関数:Format関数】

 

VBAマクロで日付時刻から年月日の取得・抽出方法

最後に、年月日の取得・抽出方法について説明します。このセクションでは、より詳細な日付データ(yyyy/mm/dd hh:mm)から時刻情報を除外し、年月日(yyyy/mm/dd)だけを取得し表示する方法を紹介します。

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

Sub aaaaaExtractDateaaaaa()
    Dim aaaaaLastRowaaaaa As Long
    Dim aaaaaCounteraaaaa As Long
    Dim aaaaaDateCellaaaaa As Range
    Dim aaaaaSheetaaaaa As Worksheet
    
    Set aaaaaSheetaaaaa = ThisWorkbook.Sheets("Sheet1")
    aaaaaLastRowaaaaa = aaaaaSheetaaaaa.Cells(aaaaaSheetaaaaa.Rows.Count, "A").End(xlUp).Row
    
    For aaaaaCounteraaaaa = 2 To aaaaaLastRowaaaaa
        Set aaaaaDateCellaaaaa = aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "A")
        aaaaaSheetaaaaa.Cells(aaaaaCounteraaaaa, "B").Value = Format(aaaaaDateCellaaaaa.Value, "yyyy/mm/dd") '年月日を"B"列に表示
    Next aaaaaCounteraaaaa
End Sub

 

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

このコードを使うことで、A列にある日付時刻のデータから年月日の情報のみを取り出し、B列に「yyyy/mm/dd」形式で表示することができます。

【使用関数:Format関数】

 

まとめ VBAマクロで年月や年月日の取得・抽出方法【日付時刻データ:Year, Month, Day, Format関数】

ここでは、【Excel】VBAマクロで年だけや年月や年月日の取得・抽出方法【Year, Month, Day, Format関数】について確認しました。

マクロをマスターしてさらに快適な生活を送っていきましょう。