質問者が納得こんな感じで如何でしょうか。Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeSet Rng = Intersect(Range("A11:A52"), Target)With ActiveSheet.Calendar1 If Not Rng Is Nothing Then .Visible = True .Value = Date .Top = Rng.Top Else .Visibl...