|
YU-TANG さんから、クラスを使う方法が紹介されてますが、
この程度なら、クラスを使わなくても、
OnClickに、関数を設定する方法で同じ事を実現できます。
イベントの引数を利用したいときなどはクラスでないと無理ですが。
以前、似たような物を作ったことが有りますので、
そのときのコードの今回の仕様に合わせて変更したものを
出しておきます。参考にしてください。
フォームモジュール
Private Function Day_Click(D As Date)
Screen.ActiveControl.Value = D
End Function
Private Function SetCalendar(y As Integer, m As Integer)
' y年m月の3ヶ月前から2ヶ月後までのカレンダーの日付を設定
Dim i As Integer, j As Integer, FirstDay As Date, s As Integer
For j = -3 To 2
FirstDay = DateSerial(y, m + j, 1)
s = Weekday(FirstDay)
For i = 0 To Day(DateSerial(y, m + j + 1, -1))
With Me(Chr(Asc("E") + j) & i + s)
.Caption = Day(FirstDay + i)
.OnClick = "=Day_Click(#" & FirstDay + i & "#)"
End With
Next
Next
End Function
Private Sub Form_Load()
SetCalendar Year(Date), Month(Date)
End Sub
フォームの読み込みに、ラベルのクリック時プロパティにDay_Click関数を設定してます。
そのときに日付を引数として渡してます。
|
|