- ベストアンサー
Excel VBA色つきセルの検索
- Excel VBAを使用して色付きのセルを検索する方法について教えてください。
- セルの背景色を指定して検索する際に、Valueのないセルでも検索できる方法を知りたいです。
- https://www.moug.net/tech/exvba/0110020.htmにアクセスして、詳細な情報を確認しましたが、条件に合致する方法が見つかりませんでした。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
What:=""にしたらいけましたが…2013です。 Sub moto() Dim c As Range Application.FindFormat.Clear Application.FindFormat.Interior.Color = vbRed Set c = Range("実験結果").Find(What:="", SearchFormat:=True) If c Is Nothing Then MsgBox "該当データはありません" Exit Sub Else MsgBox c.Address End If End Sub 駄目でしたら以下の方法で検索してください。 Sub Test() Dim c As Range For Each c In Range("実験結果") If c.DisplayFormat.Interior.Color = vbRed Then MsgBox c.Address End If Next End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
Mougの記事を多少修正して、少数のデータですがやってみると、うまく該当セルを拾うようですが。 (1)ホームの「ペンキ缶から垂らす、アイコン」で、セルの塗りつぶしの色を設定した。 (2)Find(What:="",とFind(What:="*",どちらでも該当セルを拾った。 (3)FindFormat.Interior.Color = vbYellowやVbRedでやってみた。 いつも思うのは、Interior.Color式の設定以外には、セルの塗りつぶしの色の設定方式はないのかどうか、小生は勉強が及んでない。 質問者は、WEBでの設定例に惑わされずに、テストしたのでしょうか? 例 Range("実験結果")の箇所など。だまされたと思って、下記(犯意はセル範囲はA1:J100)でやってみてはどうでしょうか。 ーーー 標準モジュールに Sub Sample() Dim c As Range Dim Rng As Range Dim firstAddress As String Application.FindFormat.Clear Application.FindFormat.Interior.Color = vbYellow Set c = Range("a1:j100").Find(What:="", SearchFormat:=True) If c Is Nothing Then MsgBox "該当データはありません" Exit Sub Else MsgBox c.Address '<====== firstAddress = c.Address Set Rng = c Do Set c = Range("A1:J100").Find(What:="", _ After:=c, _ SearchFormat:=True) If c Is Nothing Then Exit Do If c.Address = firstAddress Then Exit Do MsgBox c.Address '<====== Loop End If End Sub
- kkkkkm
- ベストアンサー率66% (1719/2589)
あと vbGreenやvbBlue とかは色設定で標準の色から緑や青を選択して色付けしていても該当なしとなりますので、マクロの記録でコードを取得してその値を指定してください。
- kkkkkm
- ベストアンサー率66% (1719/2589)
ちなみに 実験結果と名前を付けた範囲でセルの色を付けているのは間違いないですか。
お礼
ご回答いただいています皆様、ありがとうございます。 まだ、検証できておりませんが、ご回答を見る限り私のしようとしていることは可能なようです。 結果が出ましたら、また、連絡させていただきます。 ちょっと、安心しております。
補足
Set c = Range("A1:J100").Find(What:="", _ After:=c, _ SearchFormat:=True) の下にヒットするごとに c.select をしてどこが該当しているか探っていましたが、色のないセルまで選択されていたため質問させていただいておりました。 改めて設定し、実行したところ、ご指定いただいている通り、正常に動作しました。 Range設定等、誤っていたのかもしれません。最初に確認していたシートの原型が残っていないもので、どこがどうだったか確認のしようがありませんが結論として問題なしということになりました。 助言いただいた方々、どうもありがとうございました。