- ベストアンサー
マクロ 色が思うように、表示できない
- マクロを使用して色の表示が思うようにできない場合の質問です。
- 質問者が指摘された問題に対して解決策を探しており、他のユーザーからの回答も参考にしています。
- 質問者のコードを示し、それぞれの条件に応じてセルに色を付ける方法について説明されています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
【補足】目で見たら判る書き方を! Dim I AS Integer Dim isGokaku As Boolean Dim isKeppin As Boolean Dim intIE As Integer Dim intIF As Integer Dim intIG As Integer Dim intIH As Integer Dim intColor As Integer Dim strFlag As String ' *********** ' 判定準備 ' *********** intIE = Cells(I, "E") intIF = Cells(I, "F") intIG = Cells(I, "G") intIH = Cells(I, "H") ' ******************* ' 倫理式による判定 ' ******************* isKeppinn = intIH >= 1 And intIH <= 49 isGoukaku = intIE >= 20 And intIF >= 6) * intIG >= 10 _ + intIE= 0 + intIF= 0 + intIG = 0 _ ‥‥ ‥‥ ' *************** ' 合欠不の表示 ' *************** Cells(I,J) = Mid("合欠不", Abs(-1 + isKeppin * 1 + isGoukoaku * 2), 1) ' ************************ ' ColorIndex の更新 E-H ' ' 06:黄色 ‥‥ ‥‥ ' ' ************************ Cells(i, "E").Interior.ColorIndex = _ ((intIE >= 1 * intIE < 20)) * 6 ‥‥ ' ************************ ' ColorIndex の更新 J ' ' 38:ローズ ' 38:白 ' 45:薄いオレンジ ' ' ************************ Cells(i, "J").Interior.ColorIndex = _ Abs(isKeppin * 38 + isGoukoaku * 2 + Not isGoukaku * 45) これだと、プログラムコードを上から目で追うだけでチェックできます。
その他の回答 (2)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】論理式もあり 正しいかどうかは置いといて、次のように論理式で書いたが良いのでは・・・ Dim isGokaku As Boolean Dim isKeppin As Boolean isKeppinn = Cells(i, "H") >= 1 And Cells(i, "H") <= 49 isGoukaku = (Cells(i, "E") >= 20 And Cells(i, "F") >= 6) _ * Cells(i, "G") >= 10 _ + Cells(i, "E") = 0 _ + Cells(i, "F") = 0) _ + Cells(i, "G") = 0 これだと、論理式の順序次第では正誤チェックもたやすいと思う。
お礼
有難うございます、少し勉強させて下さい。時間をかけてやってみます。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
一度《Cells(i, "F") <= 10》の条件に合致しなのを除外しておいて《Cells(i, "G")》の値で再判定することは不能。また、 (Cells(i, "E") >= 20 の条件を書く必要はない。それに、《(Cells(i, "E") <= 19》という条件判定は既出、よって、最後の二つのIf 判定も成立しない。ともかく、If Then 文という手法を中止すべきと思う。
お礼
ありがとうございます。もう少し、整理してみます。
お礼
有難うございます。こんな判定のことまで考えたことがありませんでした。腰を落ち着けて、しっかり考え直さないとできない気がしています。初心者であればあるほど、整理するべきなことが多くあると反省しています。