| 
    
     |  | ▼ピンキー さん: おはようございます。
 
 >セル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
 
 上記のシートをアクティブにした状態で実行してみてください
 
 |  |