|
▼BUN さん:
> おせわなります
>
>たとえば
>A1に西暦
>B1に月
>を入力すると
>
>C2から自動的に一ヶ月分の日付を入力させたいのですが
>わかる方ご教授願います
VBAで実装したいんでいいですよね。
即座に処理させるんであれば、
当該シートのChangeイベントプロシージャにコードを書くことになります。
多少の例外を考慮すると、
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim d As Date
Set r = Me.Range("A1:B1")
If Intersect(Target, r) Is Nothing Then Exit Sub
If IsEmpty(r(1)) Or IsEmpty(r(2)) Then Exit Sub
Application.EnableEvents = False
With Me.Range("C2")
.Resize(31).ClearContents
On Error GoTo ErrHndl
d = DateSerial(r(1).Value, r(2).Value, 1)
On Error GoTo 0
With .Resize(Day(DateAdd("m", 1, d) - 1))
.Item(1) = d
.DataSeries
End With
End With
Application.EnableEvents = True
Exit Sub
ErrHndl:
Application.EnableEvents = True
End Sub
てな感じでしょうか?
なお、B1セルに月としてはありえないような13以上が入ったら駄目とかであれば、
そういう類の対策は別途対応が必要です。
|
|