- ベストアンサー
マクロで予定表 セルに色を塗る
下記のような表があります。 (1)シート名 予定表 A B C 1 日付 曜日 予定 2 2008/11/21 金 ビデオ返却 3 2008/11/22 土 飲み会 4 2008/11/23 日 デート ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ (2)シート名 設定 A1 =TODAY() A2 =MATCH(A1,予定表!A:A,0) <<やりたいこと>> 昨日の日付と曜日と予定のセルをグレーに塗りたい。 ブックを開いた時に日付が変わっていれば自動で実行する。 現在のマクロは以下です。 Sub Auto_Open() Worksheets("予定表").Activate ActiveWindow.ScrollRow = Worksheets("設定").Range("A2") Range("A1").Select End Sub いろいろ調べましたが解りませんでした。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
マクロでやらなくても条件付き書式の機能で可能です。 http://www2.odn.ne.jp/excel/waza/cformat.html#SEC30
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
ActiveWindow.ScrollRow = Worksheets("設定").Range("A2") ? Cells(Worksheets("設定").Range("A2").Value, 1).Interior.ColorIndex = 15 Cells(Worksheets("設定").Range("A2").Value, 2).Interior.ColorIndex = 15 のことでしょうか。 設定のシート使わずに GYOU = Range("A:A").Find(Date - 1).Row'A列で昨日の日付探して行番号を取得 Match関数と結果同じ Cells(GYOU, 1).Interior.ColorIndex = 15 Cells(GYOU, 2).Interior.ColorIndex = 15 とかがわかりやすいでしょうか。 別案ですが、条件付書式ではダメなのでしょうか。
お礼
詳しい回答ありがとうございます。 ActiveWindow.ScrollRow = Worksheets("設定").Range("A2") ? MATCH関数で取得した値を行番号の代わりにして、今日の日付の行を最上部に表示させるためのものです。 ご指摘のように、条件付書式で対応できることが分かりました。ありがとうございました。また、分からないことがあったら、よろしくお願いします。
お礼
早速の回答ありがとうございます。 URL大変参考になりました。 条件付書式って思っていたより色々なことができるのですね。 勉強になしました。ありがとうございました。 また、よろしくおねがいします。 P.S 以下で解決しました。 =$A14<TODAY()