この記事では、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関数】について確認しました。
マクロをマスターしてさらに快適な生活を送っていきましょう。