質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1379閲覧

VBAで、条件に基づきセルに色を付ける方法

kashim

総合スコア38

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/04/12 10:23

編集2018/04/12 10:58

お世話になっております。
上の行と異なる場合のみ、そのセルの背景色に色を付ける方法を探しております。

【満たしたい要件】
1.Excelの6行目以降の、偶数行に、変更前という行があります。
2.Excelの7行目以降の、奇数行に、変更後という行があります。
3.上記の行の4列目以降(D列)以降にだけ、適用させたいルールがあります。
4.奇数行の時、上のセルと異なる値の場合、セルの背景色を赤くしたい

【考えた方法】
VBAで、ある特定のセル範囲に条件付き書式を適用させればいいとまで分かり

VBA

1writeRow = 6 2 3for i = writeRow To 10000 4 ' 奇数 5 If writeRow Mod 2 <> 0 Then 6 ' 色を付ける 7 Range(Cells(writeRow, 4), Cells(writeRow, 100)).FormatConditions.Add(xlExpression, xlNotEqual, "=$D7<>$D6").Interior.Color = RGB(255, 0, 0) 8 End If 9writeRow = writeRow + 1 10next i

上記のように、書いたのですが方法が思いつかず悩んでおります。
何か不足している情報がありましたら、ご教授ください。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/12 10:45

状況を第三者が再現できるように、もう少し前提になるワークシートの状態を図で示したりできないでしょうか。
guest

回答1

0

ベストアンサー

若干無駄は出ますが、手動で対象範囲全体に(D6:~)条件付き書式を設定してしまった方が楽な気がします。

条件は

4.奇数行の時、上のセルと異なる値の場合

となりますので

= AND(「奇数行」,「上のセルと異なる」)

となる数式を条件付き書式の数式に入れれば良いでしょう。

奇数行の条件は

MOD(ROW(), 2) <> 0

上のセルと値が違う条件は

D5<>D6 # 絶対参照ではなく、相対参照

となります。

以上を踏まえればD6:~の範囲に以下の条件で条件付き書式を設定すればよいです。

=AND( MOD(ROW(), 2)<>0 , D5<>D6 )

投稿2018/04/12 11:25

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問