こんばんは!
http://okwave.jp/qa/q8375703.html
↑に関連した質問ですかね?
お示しのコードを詳しくみていませんが、おそらくA列にC1セルの月の日付を1~月末まで表示させたいものだと解釈して・・・
上記URLのコードに少し手を加えているだけです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, k As Long, myNum As Long, myMax As Long
If Intersect(Target, Range("C1,B9:B39,R9:R39")) Is Nothing Or Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
If IsDate(Range("C1")) Then
myMax = Day(DateSerial(Year(Range("C1")), Month(Range("C1")) + 1, 1) - 1)
End If
With Target
Select Case .Column
Case 3
Range("A9:A39").ClearContents
For i = 1 To myMax
Cells(i + 8, "A") = i
Next i
myNum = Cells(40, "B").End(xlUp)
Range("B9:B39").ClearContents
For i = 1 To myMax
Cells(i + 8, "B") = myNum + i
Next i
Case 2
k = .Row
If .Value = "" Then
Range(Cells(k, "B"), Cells(39, "B")).ClearContents
ElseIf .Value = 0 Then
Range(Cells(k + 1, "B"), Cells(myMax + 8, "B")) = 0
Else
For i = k + 1 To myMax + 8
Cells(i, "B") = Cells(i - 1, "B") + 1
Next i
End If
Case Else
k = .Row
Range(Cells(k + 1, "R"), Cells(39, "R")).ClearContents
Range(Cells(k + 1, "R"), Cells(myMax + 8, "R")) = .Value
End Select
End With
Application.EnableEvents = True
End Sub
こういった感じをご希望だったのでしょうか?m(_ _)m
お礼
これです!!この形です。 感動しました、そして非常に参考になりました。 これからも勉強し、色々なパターンのVBAが組める様に精進します。 この度はありがとうございました。