• 締切済み

A列で太郎、一郎、三郎を検索し、検索された太郎、一郎、三郎のB列、C列

A列で太郎、一郎、三郎を検索し、検索された太郎、一郎、三郎のB列、C列、D列を0を代入し、緑に塗るVBA記述を教えてください。

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

進んでいますか? 大丈夫ですか? すぐに回答を!と希望されながら全く応答がないので心配しています。 もう一例、提示します。 Dim i As Long Do With Range("A1").Offset(i) If .Value = "太郎" Or .Value = "一郎" Or .Value = "三郎" Then .Offset(, 1).Resize(, 3).Value = 0 .Offset(, 1).Resize(, 3).Interior.ColorIndex = 35 End If End With i = i + 1 Loop Until ActiveCell.Offset(i).Value = ""

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

色々やり方はあると思います。 Dim c As Range Dim rng As Range Dim flg As Boolean Set rng = Range("A1:A50") For Each c In rng flg = False Select Case c.Value Case "太郎": flg = True Case "一郎": flg = True Case "三郎": flg = True End Select With c.Offset(, 1).Resize(, 3) If flg = True Then .Value = 0 .Interior.ColorIndex = 8 Else .Interior.ColorIndex = xlNone End If End With Next ColorIndex値は、セル塗り潰しをマクロの記録して調べてください。 対象セル範囲の求め方は、Web検索すればたくさん参考事例がヒットすると思います。

  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.1

A列の行数がわからないので ループは条件ループとしました。 一例です Sub Macro1() i = 1 gtr0000: If Range("a1").Cells(i).Value <> "" Then If Range("a1").Cells(i).Value = "太郎" _ Or Range("a1").Cells(i).Value = "一郎" _ Or Range("a1").Cells(i).Value = "三郎" Then For j = 1 To 3 Range("b1").Cells(i, j).Value = 0 Range("b1").Cells(i, j).Select With Selection.Interior .ColorIndex = 35 .Pattern = xlSolid End With Next j End If i = i + 1 GoTo gtr0000 Else Exit Sub End If End Sub

関連するQ&A