セルのフォントを透明にするにはどうすればよいですか?


18

Excelの条件付き書式を使用してヒートマップを作成しています。セルの値が背景色に対して表示されないようにします。セルの塗りつぶし書式で見られるのと同様に、フォントの書式を透明にする方法はありますか?

ヒートマップなので、単一の色(白など)は使用できず、各セルのフォントプロパティを適切な色に個別にフォーマットする必要はありません。

編集: わかりやすくするために、条件付き書式設定>カラースケール>赤白青を使用してヒートマップに色が付けられているため(白が明るい灰色に変更されている)、セルの塗りつぶし値は直接設定されず、計算値になります色のグラデーション。

ヒートマップ

回答:


29

フォントの色は変更しないが、セルからテキストを効果的に削除する回避策を見つけました。値を使用して、セル番号の形式をカスタムに調整します;;;


これは何でも
うまくいく-Dev_Man

3

セルのフォントの色を塗りつぶしの色に一致させるワークシート機能(手動以外)については知りませんが、マクロを使用すると非常に簡単です。以下の最初のマクロは、選択した範囲のセルのフォントの色を変更して、塗りつぶしの色と一致させます。2番目は、フォントの色をデフォルトの黒に戻します。

Sub HideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = cell.Interior.Color
    Next cell
End Sub

Sub UnhideFont()
    Dim cell As Variant
    For Each cell In Selection
        cell.Font.Color = 0
    Next cell
End Sub

マクロをインストールするには、選択Developer/ Visual Basicメインリボンから、次に選択Insert/ Moduleメニューから。開いた編集ペインにコードを貼り付けます。マクロは、メインリボンからDeveloper/ Macrosを選択してアクセスできるマクロリストに表示されます。変更する範囲をマウスで選択し、実行するマクロを選択するだけです。


非常に興味深いアプローチ。私はそれを試してみましたが、それは普通にフォーマットされた塗りつぶされたセルで動作します(つまり、セルフォーマットが直接選択されている場合)。残念ながら、セルの色がグラデーションの条件付き書式の場合は機能しません。その後、セルの色は白に変わります。何かご意見は?
ダブ

残念です。このStackOverflow投稿の回答は、アプローチを示唆しています。今日は後でチェックアウトします。
チャフ

おかげで、今のところは数値形式のチートを使用していますが、より良い長期的なソリューションを得るために、リンクで参照されているVBAを改善していきます。
ダブ

受け入れられた回答の変更については申し訳ありませんが、投票の不一致により適切であると思われました。また、現在私が定期的に使用している方法と一致しています。
DAV

1

さて、コードを送信したのはこれが初めてなので、ここに行きます。マクロの道が進むべきだと思いましたが、条件付き書式を使用してフォントをセルの色と同じに設定できないので、他の唯一の方法は同様に機能するマクロで両方を変更することです条件付きフォーマットの効果、以下を参照:

Sub change()

    Dim Rstart, Rmid, Rend, Gstart, Gmid, Gend, Bstart, Bmid, Bend, Rsd, Rdd,_
    Gsd, Gdd, Bsd, Bdd, Rcell, Gcell, Bcell As Integer
    Dim maxsel, minsel, halfsel, halfval, v As Double



    Rstart = 0
    Rmid = 230
    Rend = 255
    Gstart = 0 
    Gmid = 230
    Gend = 0
    Bstart = 255
    Bmid = 230
    Bend = 0

    Rsd = Rmid - Rstart
    Rdd = Rend - Rmid

    Gsd = Gmid - Gstart
    Gdd = Gend - Gmid

    Bsd = Bmid - Bstart
    Bdd = Bend - Bmid

    maxsel = Application.WorksheetFunction.Max(Selection)
    minsel = Application.WorksheetFunction.Min(Selection)
    halfsel = (maxsel - minsel) / 2
    halfval = minsel + halfsel
    If halfval = 0 Then Exit Sub

    Dim cell As Variant
    For Each cell In Selection
        v = cell.Value
        If v >= minsel And v < halfsel Then
            Rcell = Round((Rstart + ((halfval - v) / halfsel) * Rsd), 0)
            Gcell = Round((Gstart + ((halfval - v) / halfsel) * Gsd), 0)
            Bcell = Round((Bstart + ((halfval - v) / halfsel) * Bsd), 0)
        Else
            Rcell = Round((Rmid + ((v - halfval) / halfsel) * Rdd), 0)
            Gcell = Round((Gmid + ((v - halfval) / halfsel) * Gdd), 0)
            Bcell = Round((Bmid + ((v - halfval) / halfsel) * Bdd), 0)
        End If

    cell.Font.Color = RGB(Rcell, Gcell, Bcell)
    cell.Interior.Color = RGB(Rcell, Gcell, Bcell)

    Next cell

    End Sub

元の質問には3年遅すぎますが、これが誰かの助けになることを願っています。


1

これが私のやり方です。

.Cells(RowTo、ColHcpDiP).Font.Color = .Cells(RowTo、ColHcpDiP).Interior.Color '色を非表示に設定

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.