• ベストアンサー

エクセルVBAで範囲を都度指定したい

教えてください。 指定した範囲から先頭がhのセルについて 色を付けていますが、範囲を固定ではなく マウスで都度選択させたいのですが どう直せば良いのでしょうか。 ActiveCell にすると最初のひとつしか変わりません。 Sub TEST() Dim rg As Range For Each rg In Range("D7", "D14") If Left(rg.Value, 1) <> "h" Then rg.Interior.ColorIndex = 23 rg.Offset(, 1).Interior.ColorIndex = 24 End If Next rg End Sub

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

For Each rg In Range("D7", "D14") を For Each rg In Selection とすればいいと思います。 しかし、 If Left(rg.Value, 1) <> "h" Then だと、「先頭がh以外のセルについて」になっていますが、それはそれでいいのでしょうか?

noname#252806
質問者

お礼

早速の回答ありがとうございました。 ヘルプで探せなかったのですが なんとあっさり出来てしまいました。 対象条件は説明をはしょってしまいましたが お気遣いありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 指定した範囲から先頭がhのセルについて > 色を付けていますが、 呈示されたコードは先頭がhでないセルおよびその右側のセルについて着色しているように思えるのですが・・・。 マウスで洗濯された範囲で、先頭がhのセルおよびその右側のセルについて着色したいのであれば、 Sub TEST01() Dim rg As Range For Each rg In Selection If Left(rg.Value, 1) = "h" Then rg.Interior.ColorIndex = 23 rg.Offset(, 1).Interior.ColorIndex = 24 End If Next rg End Sub ではないでしょうか。

noname#252806
質問者

お礼

早速の回答ありがとうございました。 言われてみると「あっつ、そうか」ですね。 あわてて打ったので 対象条件など説明をはしょってしまいましたが アドバイスありがとうございました。

関連するQ&A