素材>ExcelVBA

指定した日付以前でなおかつ指定した色で入力されているセルを塗りつぶす

 

何のことやねん、日本語でしゃべれと(2回目) 。
・・・自分でも何言ってんのか分からないので画像で説明します。

 

 

このようにカレンダーがあるとします。
で、「今日」が2014年7月27日として、そこから1週間前までの赤色文字は水色に、さらに以前の赤色文字はグレーで塗りつぶしたいとします。
↓みたいな感じ。

 

 

以下コード

 

 

・・・すみません、スクショからバージョンアップしています。
「今日」ではなく「起算日」(このスクリプトでは「Range("F1")」)以前を判定するようになっています。
んなもんで「起算日」に「2014/07/27」と入力するとスクリーンショットのようになります。

 

使い方

 

カレンダーでなくても、日付がたくさん並んでいる表を用意します。
適当な余白セルを起算日にします。
コードの「Range("F1")」部分を起算日セルに合わせます。
コードの「If RangeB.Value <= Range("F1").Value - 7 Then」の7を任意の数字(何日前まで別の色にするか)に変更します。
あとはマクロの実行を行うだけ。
カスタムのしようはいくらでもあるんじゃないかなと思うので、色々試してみてください。

ちなみに、職場ではとある報告予定の日程カレンダー(というか日程の一覧)があり、
その報告予定から起算日まで1週間以内に報告した(文字の色を変えておく)、もしくは1週間以上経過していたら
セルをグレーに塗りつぶし、1週間以内に報告がまだだったら赤色に塗りつぶし、というように使っています。
まあ職場で「色分けしといて」と言われて一つずつ見るの面倒だったので組んでしまったという・・・