プロが教える店舗&オフィスのセキュリティ対策術

背景色を黄色に手動で行ったら文字色を黄色に、青色に変更したら青色に、何もしなければ白色に
と背景色によって文字色を変えたい。
A1からA4まで2という数値が入力されていてA2のみ文字色は黒その他は白色
背景色が黄色に変わった時A2のみ黒、その他は文字色は黄色
背景色が青色に変わった時A2のみ黒、その他は文字色は青色
というような背景色に合わせA2以外のセルは見た目消えているようにしたいです。
お知恵お知らせ願います。

質問者からの補足コメント

  • Sub B列の背景色が黄色でなければ文字色を白色に黄色色なら黄色に()
    If Range("B2:B6").Interior.ColorIndex <> 6 Then
    Range("B2:B6").Font.ColorIndex = 2
    Else
    Range("B2:B6").Font.ColorIndex = 6
    End If
    End Sub
    背景色が黄色なら文字色が黄色にはなるのですが、背景色が黄色でないものまで文字色が黄色になってしまいました。
    まだVBA初心者でよくわかっていません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/05/05 13:49

A 回答 (2件)

背景色の情報はVBAでしか取得できないので、あなたにプログラミングの知識がなければ無理です。



文字情報から設定できるような方法を考えて、条件付き書式で設定してください
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます、VBA初心者でよくわからなくて、申し訳ありません。
文字や数値で条件付き書式が組めないので、困っていました。ありがとうございました。

お礼日時:2017/05/05 13:51

こんにちは!



B2~B6セルの範囲で、
セルの塗りつぶしがあればフォント色をその色に、塗りつぶしがなければ「自動」にしてみました。

Sub Sample1()
Dim c As Range
For Each c In Range("B2:B6")
If c.Interior.ColorIndex <> xlNone Then
c.Font.Color = c.Interior.Color
Else
c.Font.ColorIndex = xlAutomatic
End If
Next c
End Sub

※ 質問文では黄色・青・白等々が出ていますが
フォント色は指定せずに塗りつぶしの色にしています。m(_ _)m
    • good
    • 1
この回答へのお礼

ありがとうございました、早速実行しました。
背景色=文字色にすればよかったのですね、大変参考になりました。

お礼日時:2017/05/05 22:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!