No.2ベストアンサー
- 回答日時:
No.1です。
A列のセルは条件付き書式によって色付けされている訳ですね?
Excel的には条件付き書式で色付けされているセルは判断できません。
ただし、お使いのバージョンがExcel2010以降のバージョンであれば「DisplayFormatオブジェクト」が使え、
条件付き書式でも見た目の色が判断できるようになりました。
お使いのバージョンが2010または2013の場合は↓のコードでマクロを実行してみてください。
(今回もA列2行目から「条件付き書式」でセルの色が付いているとします)
Sub Sample2()
Dim i As Long, N As Long, R As Long, G As Long, B As Long
i = 1
Do
i = i + 1
If Cells(i, "A").DisplayFormat.Interior.ColorIndex = xlNone Then Exit Do
N = Cells(i, "A").DisplayFormat.Interior.Color
B = Int(N / 65536)
G = Int((N - B * 65536) / 265)
R = Int(N - B * 65536 - G * 265)
With Cells(i, "B")
.Value = R
.Offset(, 1) = B
.Offset(, 2) = G
End With
Loop
End Sub
※ Excel2007までの場合は別案を考える必要があります。
例えば別セルに手作業で色付きセルの表を作っておき(←条件付き書式で設定した色の数だけ)
あるセルの条件が○の場合は手作業で色を付けたセルを参照、
そのセル色で前回のようなコードを考えるとか・・・
他に良い方法があればごめんなさいね。m(_ _)m
No.1
- 回答日時:
こんばんは!
具体的なRGB値の導き方は↓のURLで紹介されています。
http://officetanaka.net/excel/vba/tips/tips146.htm
このサイトの方法をそのままやってみました。
↓の画像のようにA2セル以降に色塗りセルが連続しているとします。
(「色なし」のセルがあればループを止める)
Sub Sample1()
Dim N As Long, R As Long, B As Long, G As Long
Dim i As Long
i = 1
Do
i = i + 1 '←2行目から
If Cells(i, "A").Interior.ColorIndex = xlNone Then Exit Do
N = Cells(i, "A").Interior.Color
B = Int(N / 65536)
G = Int((N - B * 65536) / 256)
R = N - G * 256 - B * 65536
With Cells(i, "B")
.Value = R
.Offset(, 1) = B
.Offset(, 2) = G
End With
Loop
End Sub
こんな感じではどうでしょうか?m(_ _)m
この回答へのお礼
お礼日時:2015/03/01 22:48
凄いです!出来ました!ありがとうございます!
更に、お聞きしたいことがあります。
参考サイトを見たのですが、理解が追い付かなくて…
Excelの「条件付き書式」で数値ごとに背景色をつけていると
マクロ実行しても、色を読み取ってRGBを表示しません。
何かいい策がありましたら、ご教授ください( ..)φ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Excel(エクセル) エクセル マクロ 行や列を削除しても 常にC3セルに背景色を維持 6 2023/04/04 02:07
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) エクセルのマクロを2つご指南ください 3 2023/01/02 12:16
- その他(Microsoft Office) スプレッドシートにて、条件付き書式で複数の単語に合致するセルを着色したいです。 2 2023/04/06 13:25
- Visual Basic(VBA) Excelにて、指定した日の午後にファイルを開いたらsheet1に UserForm1を表示させたい 2 2022/05/31 20:53
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) エクセルから、パワーポイントのスライドを複数作成する。 1 2022/07/08 09:40
- Excel(エクセル) マクロ ScrollColumn について 2 2022/04/07 09:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの計算で@が出てしまう件
-
TODAY()で設定したセルの日付...
-
特定のセルが空白だったら、そ...
-
実行時エラー438 オブジェクト...
-
vbsのセル値の取得について
-
Application.Matchで特定行の検索
-
VBAを使用した時間管理
-
Sub 要具ライフ() ActiveSheet....
-
ExcelVBAを使って、値...
-
VBA コピーして次の値まで貼り...
-
【GAS】特定文字の削除について
-
VBAでセルの文字列を移動させる...
-
Excel2003 複数セル1列の入力済...
-
VBAで自動集計(特定セルコピー...
-
3桁または4桁の数値を時刻に...
-
エクセルの複数データーをダブ...
-
【VBA】指定したセルと同じ値で...
-
VBA実行後に元のセルに戻りたい
-
VBAでセルをクリックする回...
-
別のシートのセルを参照させる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報