• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのVBAについて質問です。)

エクセルVBAで複数の検索対象セルの背景色を変える方法

このQ&Aのポイント
  • エクセル2003のVBAを使用して、複数の検索対象セルの背景色を変えたいです。検索したい文字列は別のシートに入力されており、増えた場合にも対応できるようにしたいです。
  • 初心者がマクロを組む際に困っています。いくつかの検索したい文字列があり、それに一致したセルの背景色を変えたいのですが、うまく実装できません。どなたか助けていただける方がいれば、お願いします。
  • エクセルのVBAを使用して、複数の検索対象セルの背景色を変えたいです。検索文字列は別のシートに入力されており、増えた場合にも対応できるようにしたいです。実際に試してみたのですが、最初のセルのみが変換され、後に出てくるセルは変換されません。困っています。助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

一例ですが >findメソッドや繰り返し処理などを調べて実践してみたのですが、 なので Sub ボタン1_Click() Dim cc As Range Set cc = Sheets(1).Range("B2:J2,B11:J11,B20:J20") For Each c In cc Set s = Sheets(2).Columns("A").Find(c.Value, LookAt:=xlWhole) If s Is Nothing Then Else c.Interior.ColorIndex = 6 End If Next End Sub とか >全セル対象でも大丈夫ですが ならば Sub ボタン1_Click() Dim cc As Range Set cc = Sheets(1).UsedRange For Each c In cc If c.Value <> "" Then Set s = Sheets(2).Columns("A").Find(c.Value, LookAt:=xlWhole) If s Is Nothing Then Else c.Interior.ColorIndex = 6 End If End If Next End Sub とか云った方法もあります。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! 補足の件について・・・ >2行目のみしか色がつかなかった すなわち11・20行目には色がつかなかったというコトですね! 前回は2・11・20行だけの選択にしていましたが、 とりあえず2~20行目全セルを対象にしてみてはどうでしょうか? もう一度コードを載せてみます。 Sub test() 'この行から Dim i, j As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") '←「Sheet2」の部分は実際のSheet名に! Application.ScreenUpdating = False Cells.Interior.ColorIndex = xlNone For i = 2 To 20 For j = 2 To 10 If WorksheetFunction.CountIf(ws.Columns(1), Cells(i, j)) Then Cells(i, j).Interior.ColorIndex = 6 '←色は好みで! End If Next j Next i Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 一例です。 Sheet2のA列に検索したい文字を入力しておきます。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) ※ とりあえずセル色は「黄色」としています。 Sub test() 'この行から Dim i, j As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") '←「Sheet2」の部分は実際のSheet名に! Cells.Interior.ColorIndex = xlNone For i = 2 To 20 Step 9 For j = 2 To 10 If WorksheetFunction.CountIf(ws.Columns(1), Cells(i, j)) Then Cells(i, j).Interior.ColorIndex = 6 '←色は好みで! End If Next j Next i End Sub 'この行まで 参考になりますかね?m(_ _)m

mana0919
質問者

補足

ありがとうございます。 さっそく実行してみたのですが、2行目のみしか変換されなかったのですが… どうしたらいいでしょうか? 改善する技術もなく、頼ってばかりで申し訳ないですが、 アドバイスくださると助かります。

関連するQ&A