[[20180306115928]] 『開いた時の日付を塗りつぶし(VBA)』(ぽん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『開いた時の日付を塗りつぶし(VBA)』(ぽん)

下記のようなカレンダーを作成したのですが、
このファイルを開いた時点の日にちとその一行下のセル(6日に開いた場合、C5とC6)を塗りつぶししたいのですが、どのようにしたらよいのでしょうか。
また、もちろんですが、次の日に開いた場合、前日に塗りつぶした日にちは解除した状態にしたいです。
・日付は式で入力されています。(表示形式は日にちのみ)
・カレンダーは月を変更(スピンボタン)するたびにそれに応じた月の曜日配置になります。

宜しくお願い致します。

	A	B	C	D	E	F	G
 1
 2	日	月	火	水	木	金	土
 3					1	2	3
 4							
 5	4	5	6	7	8	9	10
 6							
 7	11	12	13	14	15	16	17
 8							
 9	18	19	20	21	22	23	24
 10							
 11	25	26	27	28	29	30	31
 12
 13
 14							

< 使用 Excel:Excel2013、使用 OS:unknown >


本日の日付は("I3")に入力してあります。
(ぽん) 2018/03/06(火) 13:22

 A3セルからG14セルを選択した状態で条件付き書式→新しいルール
 数式を〜を選んで =OR(A2=$I$3,A3=$I$3)
 書式の塗りつぶしタブから色を選択
(bi) 2018/03/06(火) 13:26

biさんの回答と編集衝突しちゃって、当該回答を拝見すると、そちらのほうがいいようにおもいますが、せっかくなので私案を投稿しておきます。

(↓以下、衝突したものそのまま)

なにがどこまで理解できてるかわからないので、具体的にどのようなコードをかいていて、どう上手く行かないのか説明してもらえませんか?

アイデア的な話であれば、思いつきですけど
3,5,7・・・行目の数字を実際には日付型の値になるように設計しておいて、
Range(A3:G13).offset(1)の範囲の塗りつぶしを解除しておいてから、
Range(A3:G13).find で 「本日の日付」 を検索して
見つかったセル.offset(1) を塗りつぶせばいけるような気がします(テストしてないので確証はなし)
(もこな2) 2018/03/06(火) 13:38


 タイトルにVBAって書いてありましたね…。失礼しました。
(bi) 2018/03/06(火) 13:39

 こういうベタでいいと思うけどね。

 Dim Cel As Range
 Range("A3:G11").Interior.Pattern = xlNone
 For Each Cel In Range("A3:G11")
   If Cel.Value2 = Range("I3").Value2 Then
      Cel.Resize(2).Interior.Color = 65535
      Exit For
   End If
 Next

(BJ) 2018/03/06(火) 14:02


皆様、ご返答誠にありがとうございます。

BJ様の提案のものを参考にさせていただきます。
他の方々もお時間を割いていただきありがとうございました。

また何かありましたら、宜しくお願い致します。
(ぽん) 2018/03/06(火) 14:35


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.