• 締切済み

エクセルのマクロについて教えてください

エクセルで、その行の中に赤色のセルがある場合は、その行のA列のセルに"○"を入れるというのは、マクロで書く場合はどのように書けばよいでしょうか。 行は1~100まで、列はA~Zまであります。赤色のセルはB列~Z列の所々に点在します。

みんなの回答

noname#140971
noname#140971
回答No.6

Cells(I, 1) = Mid("○", 1, isRedRow(I)) つまり、0 or 1 を戻す isRedRow関数を作成し表示と消すをということです。

noche_gote
質問者

お礼

どうもありがとうございます。 私初心者なものでわからないことばかりです。いろんなやり方があるんですね。

noname#140971
noname#140971
回答No.5

もちろん、私のやり方にも問題はあります!

noname#140971
noname#140971
回答No.4

敢て、回答したのは・・・。 2度目を考えて、「書くと消すを同時に仕組むべきかなー」を示唆したかったからです。 で、○の表示位置は敢て・・・。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

下記の方が判りやすいでしょう。 Cells(6, "B").Interior.ColorIndex Then は最初の「赤色のセル」の番地を指定してください。 vbRedやRBG値やColorIndex値は、なかなか、現状のシートを基にしては、設定されたコードなどは具体的にはわかりにくいですから。 赤と見えるものは同じものが使われているとして Sub test01() For i = 1 To 100 For j = 2 To 26 If Cells(i, j).Interior.ColorIndex = Cells(6, "B").Interior.ColorIndex Then Cells(i, "A") = "○" Exit For 'GoTo p01 End If Next j p01: Next i End Sub

noname#140971
noname#140971
回答No.2

Private Sub CommandButton1_Click()   Dim c As Range   For Each c In Range("B1:Z100")     Cells(c.Row, c.Column) = Mid("○", 1, Abs(c.Interior.Color = RGB(255, 0, 0)))   Next End Sub これでも良いような・・・。

noche_gote
質問者

お礼

ありがとうございます! 試してみましたが、A列のセルではなく、赤色のセルに"○"が付いてしまいました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

こんな感じでしょうか? Sub Red_Cell() Dim c As Range For Each c In Range("B1:Z100") If c.Interior.ColorIndex = 3 Then Cells(c.Row, 1) = "○" End If Next End Sub

noche_gote
質問者

お礼

早速ありがとうございます! 試してみました。バッチリです!