解決済
VBAでアクティブセルを日付の位置に動かしたいと思っています。
1枚のシートに1年分の壁掛けカレンダーのようなものを作成してあります。例:
2007
4
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()
使用する関数は、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 Sub2.
2008-04-20 01:35:26
可能だと思います。
今日の日付を得ることもできるし、
後は、カレンダーの計算方法と同じ方法をVBAで計算し位置(該当セル)を求めるとか
あるいは、日を検索するとか
今日の日付を得ることもできるし、
後は、カレンダーの計算方法と同じ方法をVBAで計算し位置(該当セル)を求めるとか
あるいは、日を検索するとか
回答レベル : アドバイス
Ads By Google
コメント
まだコメントがありません
