- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ 日付の内容でセルを塗りつぶす)
マクロで日付の内容でセルを塗りつぶす方法
このQ&Aのポイント
- 質問者は、マクロで日付の内容に応じてExcelのセルを塗りつぶしたいと思っています。
- 現在、質問者が記述したマクロでは、思ったように動作していないようです。
- 質問者は、マクロが正しく動作するようにするための方法を知りたいと思っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 まず。 そもそもの「算数」の問題ですが、「以上」とは「等しいか又は大きい」、「以下」とは「等しいか又は小さい」という意味です。 「今日以上」が赤で「今日以下」が青では、今日はいったいどちらでしょう。 次に。 問題の6行目には、一体全体「具体的に何が入ってくる」可能性があるのでしょう。 マクロ以前にエクセルの基本として、「今日より大きい」のは何も日付ばかりではありません。たとえば「履歴なし」といった文字列も、今日という数値よりも必ず「大きい」と判定されます。 #言い換えると 具体的に「どんなデータが入ってるセル」で、意図したのと違う結果が現れて「思うようにならない」のか、目に見える「どうなっている」の情報が適切に説明されていません。 作成例: sub macro1() dim c as long dim res as variant for c = 5 to cells(6, columns.count).end(xltoleft).column if isdate(cells(6, c)) then if cells(6, c) < date then res = 8 else res = 3 end if else res = xlnone end if cells(6, c).interior.colorindex = res next c end sub
お礼
説明足らずで申し訳ありません。自分では分かるけど、初見の人には、この質問の仕方ではわかりませんよね。質問の要点としては、空欄まで色表示されてしまうので、空欄の時、色表示を無くすにはどうしたら良いのか?という質問でした。回答にはそれを上回る事(日付以外の文字の場合等)を書いてくれてありがとうございます。 日付か日付じゃないかを確認する『IsDate関数』があったんですね。勉強になりました。あと、このマクロ記述はかなり応用力と経験がないと書けないです。自分には応用力がかなりないので、マクロを書きまくるしかないのかなぁと思いました。