あるセル範囲にある特定色の数をカウントしたいのですが、どのようのマクロを組めばよろしいでしょうか?
たとえば、下記のURLの場合にある赤色をカウントしたい場合、具体的にどのようにマクロ組めばよいですか?
http://excel-magic.com/?no=42
実際に使いたい色は、2007から採用された色を基本として使用したいので、カラーコードの一覧表があればと思うのですが、ありますか?
塗りつぶし色
白、背景1、黒+基本色15% ⇒ -0.149998474074526
白、背景1、黒+基本色35% ⇒ -0.349986266670736
このマイナス数値がカラーコードになるんでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
リンク先のコードは、雑なコードですから、あまり参考にすべきではありません。
少なくとも、
>Application.Volatile
Volatileを入れたところで、あまり意味がありません。これを入れなければ、不揮発性になりますが、いずれにしても、再計算させるには、
ColorCountの数式のセルに対して、F2->Enter や、
ブックに対して、Ctrl+Alt+ F9(または、Ctrl+Alt+ Shift +F9)のショートカットを使います。
>カラーコードの一覧表があればと思うのですが、ありますか?
あるのかもしれませんが、必要とあれば、ご自分で、マクロで一覧を作るのが早いと思います。
>このマイナス数値がカラーコードになるんでしょうか?
カラーコードという名称が適切かは分かりませんが、色のプロパティを数値化して-1から1までで表すものだと思います。標準値が0になるようです。
**
あまり、良いアイデアが思いつきませんし、自信はありませんが、以下は、一括で、Ifでまとめてしまうと、エラー値が3つに掛かってしまい、比較が出来ません。そこで、エラー値もひとつの値として、比較するようにすれば、旧バージョン仕様に対しても新バージョン仕様に対しても、検出可能かと思います。
'//
Function CountColor(計算範囲 As Range, 条件色セル As Range) As Long
Dim c As Range
Dim cnt As Long
Dim o, p, q 'Variant型に限る
Dim x, y, z 'Variant型に限る
On Error Resume Next
o = 条件色セル.Interior.ColorIndex
p = 条件色セル.Interior.ThemeColor
q = 条件色セル.Interior.TintAndShade
For Each c In 計算範囲
x = c.Interior.ColorIndex
y = c.Interior.ThemeColor
z = c.Interior.TintAndShade
If (o = x And p = y And q = z) Then
cnt = cnt + 1
End If
x = Empty: y = Empty: z = Empty '不要かもしれない。念のため
Next c
On Error GoTo 0
CountColor = cnt
End Function
'//
No.1
- 回答日時:
こんばんは!
個人的にはカラーコードより、カラーインデックスもしくはRGB値での表示が多いのですが・・・
仮にA1~D10セル内に
白、背景1、黒+基本色15% の色付きセルの個数を求めたい場合は
Sub Sample1()
Dim cnt As Long, c As Range
For Each c In Range("A1:D10")
If c.Interior.ColorIndex = 15 Then '←白、背景1、黒+基本色15%
cnt = cnt + 1
End If
Next c
MsgBox cnt
End Sub
としてマクロを実行してみてください。
※ 白、背景1、黒+基本色35% の場合は
カラーインデックスは 48 になると思います。
参考資料 ↓のURLにカラーインデックスのURLとカラーコードのURLを載せておきます。
カラーインデックス(RGB値 16進数)
http://homepage2.nifty.com/vbasys/vbasys/vbaUtil …
カラーコード
http://sakamoto-san.com/color_wh4var_3.html
カラーコードを知りたい場合はRGB値とカラーコードの対照表になっています。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Visual Basic(VBA) VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB 2 2022/04/06 21:33
- Visual Basic(VBA) エクセルから、パワーポイントのスライドを複数作成する。 1 2022/07/08 09:40
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- その他(Microsoft Office) マクロについて教えてください、、 5 2023/06/06 22:07
- Excel(エクセル) マクロ 一定の範囲内での特定セルの色を変える 2 2022/04/07 15:04
- その他(Microsoft Office) エクセル 表の移動 2 2023/04/05 20:29
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
太字に設定されているセルの個...
-
エクセルでPDFリンクを大量...
-
エクセル 数字をすべて○などの...
-
エクセルでページ数をあるセル...
-
フォントの色を指定して削除出...
-
現在のセルの位置を返す関数は...
-
Excelで挿入した図をセルの中央...
-
Excelでセルをクリックす...
-
Excel内での検索結果をシート...
-
Excel ハイパーリンクのURLを別...
-
excelで セルの移動時に...
-
クリックすると文章が表示され...
-
エクセルでの検索ボックスの作...
-
空白セルを空セルに置き換える...
-
エクセルVBA セルに表示された...
-
EXCELのセルや文字色の反映
-
エクセルのセル内の行の並び替...
-
エクセル シート保護された共...
-
エクセル マクロ 相対パスか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
マクロを実行すると画像がズレ...
-
太字に設定されているセルの個...
-
Excelで、図形内の文字をセルに...
-
Excelで挿入した図をセルの中央...
-
フォントの色を指定して削除出...
-
Excel ハイパーリンクのURLを別...
-
エクセルでPDFリンクを大量...
-
エクセル 未入力セルがあると...
-
現在のセルの位置を返す関数は...
-
VBA 見つからなかった時の処理
-
EXCELのセルや文字色の反映
-
【EXCEL】先週の月曜日の日付を...
-
セルの値が変ると自動でマクロ...
-
エクセルでセルをダブルクリッ...
-
アポストロフィーの一括挿入 ...
おすすめ情報