Vba を使用して月の最初の日を検索する方法 (例付き)
VBA でDateSerial()関数を day 引数の値1とともに使用すると、特定のセル内の日付の月の最初の日を見つけることができます。
たとえば、次の構文を使用して、セルA1の日付の月の最初の日を検索し、その日付をセルB1に返すことができます。
dateVal = DateValue(Range(" A1 "))
Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal), 1)
たとえば、セルA1に1/5/2023 が含まれている場合、セルB1 は1/1/2023を返します。
次の例は、この関数を実際に使用する方法を示しています。
例: VBA を使用して月の最初の日を検索する
企業内のさまざまな日に行われた売上に関する情報を含む次のデータ セットが Excel にあるとします。
列 A の各日付の月の最初の日を検索し、列 C の対応するセルの日付を返したいとします。
これを行うには、次の構文を使用できます。
SubFirstDayOfMonth ()
Dim i As Integer
For i = 2 To 11
dateVal = DateValue(Range(" A " & i))
Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal), 1)
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 C の各日付は、列 A の対応する日付の月の最初の日を表します。
注 #1:セル A2 から A11 に関心のある日付が含まれているため、コードではFor i = 2 to 11を使用しました。使用するセルの範囲に応じて、この範囲を自由に変更してください。
注 #2 : VBA のDateSerial()関数の完全なドキュメントは、ここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。