大体でIT
大体でIT
2022/5/8
Excel VBAで、指定した日付が月の「何週目か」を取得したい場合は、「DateDiff」を使うとできます。手順は、「1日」との週の差分を取得して、「1週」を足すという感じです。「月曜始まり」の場合は、引数に「vbMonday」を入力するとできます。日付の操作についてマスターしていきましょう。
この記事では、指定した日付が、「月の何週目か」を取得する方法について、ご紹介します。
やり方としては、「DateDiff」を使って、指定した年月の「1日」との週の差分を取得して、「1週」を足す、という流れになります。
「月曜始まり」の場合は、「DateDiff」の第3引数に、「vbMonday」を入力することで、月の何週目かを取得することができます。
「DateDiff」をうまく使って、日付の操作についてマスターしていきましょう。
では、指定した日付が「月の何週目か」を取得する方法について、解説していきます。
指定した日付が「月の何週目か」を取得できるようになります。
「日曜始まり」と「月曜始まり」で、何週目かが変わりますので、それぞれ解説していきます。
まずは、日曜日始まりの場合で、月の何週目かを取得してみます。
指定した年月の「1日」との差分の週を取得
取得した週に「1週」を足す
Sub TEST1()
Dim A
A = "2022/1/16"
B = DateSerial(Year(A), Month(A), 1) '指定年月の1日を取得
'何週目かを取得
Debug.Print DateDiff ("ww" , B , A ) + 1
End Sub
「DateDiff」の使い方について、詳細はこちらでまとめています。
日曜始まりで、何週目かを取得
日曜始まりの場合、「2022/1/16」は、「4週目」となります。
カレンダーで「2022/1/16」が何週目かを確認してみます。
何週目かを取得するイメージとしては、次のようになります。
取得するイメージ
指定年月の1日との差分の週を取得して、1週を足すと、月の何週目かを取得するという感じです。
次は、月曜始まりの場合で、月の何週目かを取得してみます。
指定した年月の「1日」との差分の週を取得
取得した週に「1週」を足す
先ほどと違うのが、「DateDiff」の第3引数に、「vbMonday」を入力するというところです。
Sub TEST2()
Dim A
A = "2022/1/16"
B = DateSerial(Year(A), Month(A), 1) '指定年月の1日を取得
'何週目かを取得
Debug.Print DateDiff("ww", B, A, vbMonday ) + 1
End Sub
月曜始まりで、何週目かを取得
月曜始まりの場合、「2022/1/16」は、「3週目」となります。
カレンダーで「2022/1/16」が何週目かを確認してみます。
取得するイメージ
指定年月の1日との差分の週を取得して、1週を足すと、月の何週目かを取得するという感じです。
こんな感じで、「DateDiff」を使えば、何週目かを取得することができます。
「DateDiff」を使って、何週目かを取得することができれば、カレンダーの位置を取得することができます。
日曜始まりの場合で、指定した日付のカレンダーの位置を取得してみます。
指定した日付が月の何週目かを取得
指定した日付が週の何日目かを取得
Sub TEST3()
Dim A, B, C
A = "2022/1/16"
'月の何週目かを取得
B = DateDiff("ww", DateSerial(Year(A), Month(A), 1), A) + 1
'週の何日目かを取得
C = Weekday(A)
'カレンダーの位置を取得
Cells(B , C ).Offset(3, 1).Select
End Sub
日曜始まりのカレンダーで、日付の位置を取得できた
日曜始まりのカレンダーで、指定した日付の位置を取得できました。
次は、月曜始まりの場合で、指定した日付のカレンダーの位置を取得してみます。
指定した日付が月の何週目かを取得
指定した日付が週の何日目かを取得
先ほどと違う点は、「DateDiff」の第3引数と「Weekday」の第2引数に、「vbMonday」を入力するというところになります。
Sub TEST4()
Dim A, B, C
A = "2022/1/16"
'月の何週目かを取得
B = DateDiff("ww", DateSerial(Year(A), Month(A), 1), A, vbMonday ) + 1
'週の何日目かを取得
C = Weekday(A, vbMonday )
'カレンダーの位置を取得
Cells(B, C).Offset(3, 1).Select
End Sub
月曜始まりのカレンダーで、日付の位置を取得できた
月曜始まりのカレンダーで、指定した日付の位置を取得できました。
この記事では、指定した日付が、「月の何週目か」を取得する方法について、ご紹介しました。
やり方としては、「DateDiff」を使って、指定した年月の「1日」との週の差分を取得して、「1週」を足す、という流れになります。
「月曜始まり」の場合は、「DateDiff」の第3引数に、「vbMonday」を入力することで、月の何週目かを取得することができます。
「DateDiff」をうまく使って、日付の操作についてマスターしていきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。