|
▼ピンキー さん:
おはようございます。
>セルA1に西暦を、A2に月、A3に曜日をそれぞれ入力すると、該当する日をA4以下に日数分表示させるようにしたいのですが・・・
>
>例
>A1 2007
>A2 4
>A3 木
>
>と、入力して、イベントはなんでもいいです。上記のように、2007年4月の木曜日だと、該当する日は5日、12日、19日、26日と4日あるので、
>
>A4 5
>A5 12
>A6 19
>A7 26
一ヶ月の日付を全部調べたってたいしたことありませんが・・・、
Sub main()
Dim rw As Long
Dim std As Date
Dim edd As Date
Dim warray As Variant
warray = Array("日", "月", "火", "水", "木", "金", "土")
std = DateSerial([a1].Value, [a2].Value, 1) + _
Weekday(Application.Match([a3].Value, warray, 0), _
Weekday(std)) - 1
edd = DateSerial([a1].Value, [a2].Value + 1, 0)
rw = 4
Do Until std > edd
Cells(rw, 1).Value = Day(std)
rw = rw + 1
std = std + 7
Loop
End Sub
上記のシートをアクティブにした状態で実行してみてください
|
|