| 
    
     |  | また質問させていただきます。よろしくお願いします。 余り良い質問ではないかも知れません・・・どうも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
 
 
 |  |