回答編集履歴

2

コード修正

2020/11/20 01:41

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  If StrComp(r.Text, .Text, vbTextCompare) <> 0 Then
58
58
 
59
- .Interior.Color = 65535 '黄色の定数
59
+ .Interior.Color = vbYellow '黄色の定数
60
60
 
61
61
  End If
62
62
 

1

コード追記

2020/11/20 01:41

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -11,3 +11,59 @@
11
11
 
12
12
 
13
13
  `StrComp("", "xxxx", vbTextCompare)<>0` の結果はTrueです。
14
+
15
+
16
+
17
+
18
+
19
+ ---
20
+
21
+ 以下、蛇足です。
22
+
23
+ 一つずつ細かく変数に代入するというのも一つのやり方だと思いますが、
24
+
25
+ やっていることはシンプルなことですので、使用する変数は最低限にしたほうがコードが読みやすいと思います。
26
+
27
+ 自分がコーディングするなら下記のような感じになります。
28
+
29
+
30
+
31
+ ```vba
32
+
33
+ Sub 変更箇所チェック()
34
+
35
+ Dim wksOld As Worksheet
36
+
37
+ Dim wksNew As Worksheet
38
+
39
+
40
+
41
+ ' 古いシートA、新しいシートBとする。
42
+
43
+ Set wksOld = Worksheets("A")
44
+
45
+ Set wksNew = Sheets("b")
46
+
47
+
48
+
49
+ ' 古いワークシートのセルを一個ずつループ
50
+
51
+ Dim r As Range
52
+
53
+ For Each r In wksOld.UsedRange
54
+
55
+ With wksNew.Range(r.Address)
56
+
57
+ If StrComp(r.Text, .Text, vbTextCompare) <> 0 Then
58
+
59
+ .Interior.Color = 65535 '黄色の定数
60
+
61
+ End If
62
+
63
+ End With
64
+
65
+ Next r
66
+
67
+ End Sub
68
+
69
+ ```