Vba:日付を週番号に変換する方法


VBA で次の基本構文を使用して、日付を週番号に変換できます。

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
    Next i
    
End Sub

この特定の例では、 A2:A9の範囲内の各日付の週番号を検索し、 B2:B9の範囲内の結果を表示します。

VBA WeekNumメソッドは、週が日曜日から始まると想定していることに注意してください。

別の日を週の始まりとして指定するには、 WeekNumメソッドに 2 番目の引数を追加します。

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
    Next i
    
End Sub

次の例は、実際にWeekNumメソッドを使用して日付を週番号に変換する方法を示しています。

例: VBA で日付を週番号に変換する

Excel に次の日付列があるとします。

各日付を週番号に変換し、その週番号を列 B に表示するとします。

これを行うには、次のマクロを作成できます。

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
    Next i
    
End Sub

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

VBA で日付を週番号に変換します

列 B には、週が日曜日から始まると仮定して、列 A の各日付の週番号が表示されます。

週の始まりとして別の日 (月曜日など) を指定する場合は、次の構文を使用できます。

 Sub FindWeekNumber()
    
    Dim i As Integer

    For i = 2 To 9
        Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
    Next i
    
End Sub

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

週が月曜日から始まると仮定して、列 B には列 B の各日付の週番号が表示されます。

: VBA WeekNumメソッドの完全なドキュメントはここで見つけることができます。

追加リソース

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

VBA で日付を比較する方法
VBAで文字列を日付に変換する方法
VBA で 2 つの日付の間の日数を計算する方法

コメントを追加する

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