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

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

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

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

Q&A

解決済

2回答

826閲覧

エクセル 項目の不一致 色を付ける

mina6

総合スコア1

VBA

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

0グッド

0クリップ

投稿2021/11/11 07:00

編集2021/11/11 08:23

エクセルでB4:B600まで商品リストがあり、A:HFまでそれを入力しています。

イメージ説明

これをB列と比較して違う項目であれば色を付けたいと思っています。
(B列が基準)(E列とB列と比較して違うのであれば黄色くする)(H列とB列と比較して違うのであれば黄色くする・・・・・・以後HFまで繰り返し)
イメージ説明
こうしたいのですがファイルも多くあまりの量に途方に暮れてしまいました。

・試したこと
条件付き定義にした場合完全一致にできなくて0等が複数該当してしまいました。
また、3行ごとという設定が手作業で終わりませんでした。
全部を黄色くして同じ項目を白くもしたのですがうまくいきませんでした。

VBAで組もうとしたのですがそもそも一致しない場合でのコード作成ができず困っています。
試しに作ったコードはこれ
Sub Macro2()
Cells.Select
Application.CutCopyMode = False
Selection.FormatConditions.Add Type:=xlTextString, String:="=$B$1", _
TextOperator:=xlDoesNotContain
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub

ですがやりたい結果とコードが全く違うことに気が付き、根本的に違うのではないかと感じています。

お手数ですがよろしくお願いいたします。

追記
Do Until ActiveSheet.Cells(i, 2).Value = ""
の部分で実行時エラー13
型が一致しませんと出てしまいました。

Integer の変数には数値を、Boolean の変数には True か False など型に合った値を代入するそうなのですが何かご存じでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

こういうことですか?

Excel

1=AND(MOD(COLUMN(),3)=2,$B4<>B4) /* 条件付き定義 ルール 2=$B$4:$HF$100 /* 適用先

投稿2021/11/11 08:54

jinoji

総合スコア4585

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

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

0

一例として
この場合ですとB列の空白のセルまで繰り返す形ですので途中に空白があった場合はそこで終わってしまいますが

Dim i As Integer i = 4 Do Until ActiveSheet.Cells(i, 2).Value = "" If ActiveSheet.Cells(i, 2).Value = ActiveSheet.Cells(i, 5).Value Then ActiveSheet.Cells(i, 5).Interior.Color = xlNone Else ActiveSheet.Cells(i, 5).Interior.Color = vbYellow End If If ActiveSheet.Cells(i, 2).Value = ActiveSheet.Cells(i, 8).Value Then ActiveSheet.Cells(i, 8).Interior.Color = xlNone Else ActiveSheet.Cells(i, 8).Interior.Color = vbYellow End If i = i + 1 Loop

投稿2021/11/11 07:32

編集2021/11/11 07:44
bebebe_

総合スコア504

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問