指定色を探してセルを選択
先日職場で、こんな相談を受けた。
特定の色のセルを選択したいのだけど、どうすれば良い?
そこで今回、まずこんなものを考えてみた。
例えば ↓ こんな感じで、黄色と赤で塗り潰されたセルがある。
このうち、黄色のセルだけを選択してみよう。
Sub Hoge() ' 行番号のループ変数。 Dim r As Long ' 列番号のループ変数。 Dim c As Long ' シート内の使用範囲全てを、今回の処理対象とする。 With ActiveSheet.UsedRange ' 各セルの色情報を格納するための配列。 Dim arr() As Variant arr = .Value For r = 1 To .Rows.Count For c = 1 To .Columns.Count arr(r, c) = .Cells(r, c).Interior.Color Next Next ' 黄色のセルだけ選択。 Dim myRng As Range For r = 1 To .Rows.Count For c = 1 To .Columns.Count If arr(r, c) = vbYellow Then If myRng Is Nothing Then Set myRng = .Cells(r, c) Else Set myRng = Union(myRng, Cells(r, c)) End If End If Next Next End With myRng.Select End Sub
結果このように、黄色のセルだけ選択することが出来た。
今回なぜわざわざ、色情報の配列を作成したか。それは、ここから機能拡張すると、面白そうだったから。
という訳で次回に続きます。
参考まで。