質問: 【エクセル】 「やりたいこと」 2つのシート(異なるファイル)A,Bの行範囲の、特定の列のデータを比較して異なるセルに色をつけたい。 (例:シートAの1〜4行目のデータのA,D列とシートBの5〜8行目のデータのF,J列のデータを比較してシートBの異なるセルに色を付ける) 「やりたいこと(具体的に)」 シートAの5〜348行目の列DとシートBの2〜114行目の列F(以下A Bそれぞれの行範囲は同じ)、シートAの列CとシートBの列F、シートAの列IとシートBの列AI、シートAの列M+Nの合計値とシートBの列APを行単位で比較して、シートBの異なるセルに色付けをする。 当方色々やり方を調べてみたのですが、上記をかなえる式を作れませんでした。不躾ではございますが、ご回答いただけると幸いです。 添付の画像は例を図示したものです、参考にしていただけると幸甚に存じます。
回答: 以下のようなものでしょうか? 「Private Sub CommandButton1_Click()」は実施環境にあわせてください。 Private Sub CommandButton1_Click() Dim sh1 As Worksheet, sh2 As Worksheet Dim ii, jj As Long Set sh1 = Worksheets("シートA") Set sh2 = Worksheets("シートB") jj = 2 For ii = 5 To 348 If (sh1.Cells(ii, "D").Value = sh2.Cells(jj, "F").Value) Then sh2.Cells(jj, "F").Interior.Color = vbYellow End If If (sh1.Cells(ii, "C").Value = sh2.Cells(jj, "F").Value) Then sh2.Cells(jj, "F").Interior.Color = vbYellow End If If (sh1.Cells(ii, "I").Value = sh2.Cells(jj, "AI").Value) Then sh2.Cells(jj, "AI").Interior.Color = vbYellow End If If (sh1.Cells(ii, "M").Value + sh1.Cells(ii, "N").Value = sh2.Cells(jj, "AP").Value) Then sh2.Cells(jj, "AP").Interior.Color = vbYellow End If jj = jj + 1 Next ii End Sub