解決済

VBAでアクティブセルを日付の位置に動かしたいと思っています。

1枚のシートに1年分の壁掛けカレンダーのようなものを作成してあります。
例:
2007

1  2  3  4  5  6  7

8  9  10  11  12  13  14

15  16  17  18  19  20  21

22  23  24  25  26  27  28

29  30

こうやって年月日がバラバラになっているのですが今日の日付の部分のセルを
アクティブにすることは可能なのでしょうか?

2008-04-19 15:36の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(2)

5.

2008-04-20 09:09:01ベスト
ループで、セルの内容を順に調べていって「今日の日付であれば、そのセルをアクティブにする」というコードを記述します。
使用する関数は、DateSerialです。

例のオートカレンダーのExcelファイルであれば、以下のように記述します。

Sub S_ActivecellSelect()
   Dim r As Integer, c As Integer
   Dim yyyy As Integer, mm As Integer
   Dim dd As Variant
   Dim WS As Worksheet
 
   Set WS = Sheets("Sheet1")
   yyyy = WS.Range("B2").Value
   mm = WS.Range("B3").Value
 
   For r = 7 To 12
       For c = 2 To 8
           dd = WS.Cells(r, c).Value
           If IsNumeric(dd) Then'←ddは""の場合もあるので
               If DateSerial(yyyy, mm, dd) = DateSerial(Year(Now), Month(Now), Day(Now)) Then
                   WS.Cells(r, c).Select
                   Exit Sub
               End If
           End If
       Next
   Next
End Sub

2.

2008-04-20 01:35:26
可能だと思います。
今日の日付を得ることもできるし、
後は、カレンダーの計算方法と同じ方法をVBAで計算し位置(該当セル)を求めるとか
あるいは、日を検索するとか
回答レベル : アドバイス
Ads By Google

コメント

まだコメントがありません

トラックバック

トラックバックURL: