|
また質問させていただきます。よろしくお願いします。
余り良い質問ではないかも知れません・・・どうもProfesionalで
ないと出来ないようですが・・・
「ユーザフォームのツールボックスのコントロール」に
その他のコントロールの中の
Calender(Microsoftの綴りが間違っています、正しくは
Calendarですが)を追加しております。
このカレンダーを使い
・・・・2009年3月1日未満の時はMsgBoxでデータの無い旨表示
また2019年3月31日を越える時にMsgBoxでデータの無い旨の表示し
尚且つ、カレンダーもそれ以上動作できないようにしたいのですが、
どのようなコードが適切なのか判断できません。
どなたかアドバイスお願いします。
また当コードを実行すると、
「このアプリケーションは、安全でない可能性があるActiveXコントロールを
初期化しています。・・・・・」が
表示されます。この表示を出さない方法はあるのでしょうか?
Option Explicit
Private Sub Calender1_SelectDateChanged(ByVal year As Integer, ByVal
month As Integer, ByVal day As Integer)
Dim r As Range
Dim c As Range, c2 As Range
Dim n As Integer
Dim m
' [A6]セルに先頭日付
Set r = Range("A6", Cells(Rows.Count, "A").End(xlUp))
m = Application.Match(CLng(DateSerial(year, month, day)), r, 1)
On Error Resume Next
Set c = r.Item(m, 1)
If c.Value < CLng(DateSerial(2003, 4, 1 - 1)) Then
MsgBox "対象外の日にちです"
Cells(6, 1).Activate
' カレンダーが最小値より小さくならずに止まる方法?
Calender1.c.Value = False
Exit Sub
End If
' If c.Value < CLng(DateSerial(2009, 3, 1)) Then
' MsgBox "対象外の日にちです"
' Exit Sub
' End If
Set c2 = r.Item(m + 15, 1) ’シートの中央にできるだけ表示
c.Activate
Application.Goto Reference:=Range(c2), _
Scroll:=True
On Error GoTo 0
End Sub
|
|