Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4710 / 13644 ツリー ←次へ | 前へ→

【54971】アクティブセルの移動について まどぎわぞく 08/4/7(月) 22:43 質問[未読]
【54972】Re:アクティブセルの移動について ponpon 08/4/7(月) 23:30 発言[未読]
【54974】Re:アクティブセルの移動について テト 08/4/8(火) 9:53 発言[未読]
【54975】Re:アクティブセルの移動について テト 08/4/8(火) 9:59 発言[未読]
【54983】Re:アクティブセルの移動について まどぎわぞく 08/4/8(火) 22:23 質問[未読]
【54989】Re:アクティブセルの移動について テト 08/4/9(水) 10:59 発言[未読]

【54971】アクティブセルの移動について
質問  まどぎわぞく  - 08/4/7(月) 22:43 -

引用なし
パスワード
   アクティブセルの移動についてど初心者ですが質問させてください。
日付が入っているところで今日の日付があったらその位置にアクティブセルを移動させるというのは見たことがあるのですが・・・
2008/4/6
________
2008/4/7
____

2008/4/8

例えば一般的なカレンダーのような配置の場合日付の部分に移動させるのは可能でしょうか?

2008  
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
24 25 26 

【54972】Re:アクティブセルの移動について
発言  ponpon  - 08/4/7(月) 23:30 -

引用なし
パスワード
       A     B     C     D     E     F     G
1    2008                        
2    4                        
3               1     2     3     4     5
4     6    7     8     9    10    11    12
5    13    14    15    16    17    18    19
6    20    21    22    23    24    25    26
7    27    28    29    30            
8                            
9                            
10                            

こんな風になっているとして、
日付の部分を順に見ていくと、
シートモジュールに

Option Explicit

Private Sub Worksheet_Activate()
 Dim i As Long
 Dim j As Long
 For i = 3 To 7
   For j = 1 To 7
    If Cells(i, j).Value <> "" Then
      If DateValue(Range("A1").Value & "/" & Range("A2").Value & _
        "/" & Cells(i, j).Value) = Date Then
        Cells(i, j).Select
        Exit Sub
      End If
    End If
   Next
  Next
End Sub

【54974】Re:アクティブセルの移動について
発言  テト  - 08/4/8(火) 9:53 -

引用なし
パスワード
   同一シート内に、別の年月のカレンダーがあったりするの?

 1.2008年4月のカレンダーのみ有り
 2.2008年4月以外のカレンダーも有り

だと違ってくると思うんだけど。

【54975】Re:アクティブセルの移動について
発言  テト  - 08/4/8(火) 9:59 -

引用なし
パスワード
   > 1.2008年4月のカレンダーのみ有り
であれば、

――――――――――――――――――――――――――――――
Dim rng As Range

Set rng = Range("A3:G7").Find(Format(Date, "d"))

If Not rng Is Nothing Then
  rng.Select
End If
――――――――――――――――――――――――――――――

でも良いと思う。

【54983】Re:アクティブセルの移動について
質問  まどぎわぞく  - 08/4/8(火) 22:23 -

引用なし
パスワード
   ありがとうございます。
テトさんご指摘どおり同一シート内に違う月も入っています。というか1年分あるのでご教示いただいたものと似たようなものは思いつきましたが肝心な自分のシートでは出来ておりません。。

【54989】Re:アクティブセルの移動について
発言  テト  - 08/4/9(水) 10:59 -

引用なし
パスワード
   全ての月が同様の形式で書かれているなら、こういうのはどう?

――――――――――――――――――――――――――――――
Dim rngMonth As Range
Dim rngDay As Range
Dim targetDate As Date

targetDate = Date

Set rngMonth = Range("A2,A9,A16").Find(Format(targetDate, "m"))

If Not rngMonth Is Nothing Then
  Set rngDay = _
    rngMonth.Offset(1).Resize(5, 7).Find(Format(targetDate, "d"))

  If Not rngDay Is Nothing Then
    rngDay.Select
  End If
End If
――――――――――――――――――――――――――――――

※rngMonthの範囲は、各月のセル
 例)
  A2 → 4月
  A9 → 5月
  A16 → 6月
   ・
   ・
   ・

4710 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free