フォントの色をセルの塗りつぶしの色と同じにして隠すには?

Question 62.2 Previous Next
はじめまして。私は、自己流でマクロの勉強をしている初心者です。ここは情報がとても多く、仕事でたくさん活用させて頂いています。
今、仕事でオプションボタンを選択すると、セルが塗りつぶされフォントも同色になり、Excelの見た目上はフォントが隠される所まで作成したのですが、印刷プレビューさせると隠していたはずのフォントが見えてしまっているのです。

隠したフォントは隠れたまま印刷したいのですが、マクロに何を追加したらよいのか悩んでおります。 初心者の私に、簡単にできるような回答をお願いいたします。
ちなみにこんなマクロです。↓
Private Sub OptionButton1_Click()
    Range("J4") = "TRUE"
    Range("B24:R24").Select                       '※1
    With Selection.Interior                   '塗りつぶし色
        .ColorIndex = 16                      'グレー
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
    End With
Answer   Copyright (C) 2002.8.25 永井善王
おっしゃるとおり、フォントの色をセルの塗りつぶしの色と同じにすれば、ワークシートの見た目だけでなく印刷プレビューしたときも、文字が読めなくなります。 ただし、そうするためには、次の 2つの条件を満足する必要があります。
1. 文字(入力)セルと塗りつぶしセルが一致すること
2. フォントの色と、セルの塗りつぶしの色の両方を、同色に設定すること

では、ご提示いただいたマクロが、これらの条件を満たしているか、検証してみましょう。
2行目のコードは、"TRUE" という文字列を J4セルにセットしています。そして、3行目のコードで B24:R24セルを選択し、4~8行目のコードで そのセル範囲をグレーに塗りつぶしています。

問題点と対応策をまとめます。第1は、文字セルがJ4、塗りつぶしセル範囲がB24:R24で一致しませんね、文字セルをJ24のように修正します。
第2は、フォントの色を設定するコードが見当たりませんから追加して、例えば下記のようにします。
Private Sub OptionButton1_Click()
    Range("J24") = "TRUE"
    Range("B24:R24").Select                    '※1
    With Selection.Interior                     '塗りつぶし色
        .ColorIndex = 16                        'グレー
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
    End With
    With Selection.Font                         'フォント
        .ColorIndex = 16                        'グレー
    End With
End Sub
【関連ページ】 Labelのフォントカラーをフォームの色と同色にして隠したら?

 

Excel VBA Macro