解決済

条件付書式で悩みがあります。カレンダーを作っていますが今日の日付に該当した場合そのセルを指定したいのですがうまくいきません。

下記のサイトにあるカレンダーをベースに万年カレンダーを作っております。


先日教わった(回答してくださった皆様有難うございます。  )セルの一時的配色を用いて条件付書式で=DATE($B$2,$B$3,B7)=TODAY()で何も条件をつけなければセルが該当日に移動しているはずと思うのですが出来ません。なぜでしょうか。。。。

2008-03-30 12:14の質問
マイクロソフト  カレンダー  移動  Excel  VBA  セル  条件付書式  Date関数  マクロ  
マイクロソフト
マイクロソフト のホームページはこちらです
www.microsoft.com/japan/
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(2)

6.

2008-03-30 14:03:49ベスト
条件付き書式は、書式が変わるだけで、アクティブセルをそこに「移動」させることはできません。
従って、「もし今月のカレンダーだったら、アクティブセルを今日に移動」という処理を書いてやる必要があります。

サンプルとして提示されてあるカレンダーExcelファイルを前提に回答します。

標準モジュールではなく、「Sheet1」のマクロスペースに記述してください。

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim r As Integer, c As Integer
   Dim yyyy As Integer, mm As Integer
   Dim dd As Variant, mm_last As Integer
   
   yyyy = Range("B2").Value
   mm = Range("B3").Value
   
   'カレンダーは、条件付き書式で4/31などありえない日付は
   '見せてないだけなので、指定月の最後の日は何日までか求
   'めておく
   mm_last = Day(DateSerial(yyyy, mm + 1, 1) - 1)
   For r = 7 To 12
       For c = 2 To 8
           dd = Cells(r, c).Value
           If IsNumeric(dd) Then '数字だったら
               If dd <= mm_last Then 'あり得る日付だったら
                   If DateSerial(yyyy, mm, dd) = DateSerial(Year(Now), Month(Now), Day(Now)) Then
                       Cells(r, c).Select
                       Exit Sub
                   End If
               Else
                   Exit Sub
               End If
           End If
       Next
   Next
End Sub

5.

2008-03-30 13:35:23
条件は、「次の数式を満たす」でやってますか?

また、条件付き書式は、
条件が満たされた時に指定した書式を適用するのであって、アクティブセルを移動するものではありません。
回答レベル : アドバイス
Ads By Google

コメント(6)

#1.  mr_r00
2008-03-30 14:04:22

「次の数式を満たす」ですか??そんな設定がないのですが・・・
あとアクティブセルを移動するに応用できないのですか?

2008-03-30 14:08:01

厳格に処理するなら、isdate関数で、その日付が存在するかどうか判断したり、「データ」→「入力規制」で、月は1~12しか入力できないようにして下さい。

#3.  mr_r00
2008-03-30 14:27:32

すみません。ありがとうございます。
初歩間違いかもしれませんがVBEにいれても全然起動してくれないのですが何かの間違いでしょうか??
(実行も動かないです)

#4.  BLUEPIXY
2008-03-30 14:30:10

#1>そんな設定がないのですが・・・
2007以前の場合は、
「セルの値が」のコンボリストをクリックして
「数式が」を選んでください。

2008-03-30 15:14:36

autocalender.xlsファイルをUPしておきました。

http://pub.idisk-just.com/fview/Wp6RjRvMqZ0b-PLDzX...

標準モジュールのModule1とかに記述していませんか?
Sheet1のマクロスペースに記述する必要があります。
また、マクロのセキュリティが「高」以上になっているとか?

年と月のセルを色々な年月の数字に変化させると(ワークシートの内容が変わると)マクロが動きますので、マクロそのものを自分で「実行」するものではありません。

#8.  mr_r00
2008-03-30 15:28:56

あっ・・わざわざすみません
コードの記述で改行とかコピペで失敗してました。
有難うございました。Load Runnerさんすごいですね すぐに色々作れるので私なんて1日考えてもなかなか出来なかったりでまた新たに問題直面です。。。

トラックバック

トラックバックURL: