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
このマクロを実行すると、次の出力が表示されます。
列 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 で他の一般的なタスクを実行する方法について説明します。