Vba を使用して月の最初の日を検索する方法 (例付き)


VBA でDateSerial()関数を day 引数の値1とともに使用すると、特定のセル内の日付の月の最初の日を見つけることができます。

たとえば、次の構文を使用して、セルA1の日付の月の最初の日を検索し、その日付をセルB1に返すことができます。

 dateVal = DateValue(Range(" A1 "))

Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal), 1)

たとえば、セルA11/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

このマクロを実行すると、次の出力が表示されます。

VBA で月の最初の日を検索する

列 C の各日付は、列 A の対応する日付の月の最初の日を表します。

注 #1:セル A2 から A11 に関心のある日付が含まれているため、コードではFor i = 2 to 11を使用しました。使用するセルの範囲に応じて、この範囲を自由に変更してください。

注 #2 : VBA のDateSerial()関数の完全なドキュメントは、ここで見つけることができます。

追加リソース

次のチュートリアルでは、VBA を使用して他の一般的なタスクを実行する方法について説明します。

VBAで日付順に並べ替える方法
VBAで2つの日付間のifを追加する方法
VBAで日付より大きいものを数える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です