• ベストアンサー

(Excelで)範囲内のセルのついて、それぞれ数値によって網掛け&文字の色を変えたいのですが...

Excelで、範囲(B7~T8:関数によって既に文字(0~9)が入っている)内のセルについて、それぞれ文字(0~9)に応じて網掛け(10色)&文字の色(0:黒、それ以外は白)を変えたいのですが可能でしょうか? 【例】 0894567123384511700 1587321184318154115 並びに規則性はありません。 OS→WindowsXP アプリケーション→office2000professionalのExcel です。どなたかご返答お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

VBAではこんな感じ? 0~9以外の値が入ってると確実にエラーになるのでご注意下さい。 Dim backColors(10) As Long Dim cel As Range Dim ws As Worksheet Dim celVal As Integer 'あらかじめそれぞれの数値に対応した色をセットしておく。 'このサンプルは適当。色かぶってるし・・。 backColors(0) = vbRed backColors(1) = vbBlue backColors(2) = vbCyan backColors(3) = vbGreen backColors(4) = vbMagenta backColors(5) = vbRed backColors(6) = vbGreen backColors(7) = vbRed backColors(8) = vbMagenta backColors(9) = vbRed '処理対象シート Set ws = ActiveSheet For Each cel In ws.Range("B7:T8") 'セルの値を取得 celVal = cel.Value 'セルの背景色を変更 cel.Interior.Color = backColors(celVal) 'セルの文字色を変更 With cel.Characters.Font If celVal = 0 Then .Color = vbBlack '0なら黒 Else .Color = vbWhite 'それ以外は白 End If End With Next

drive11
質問者

お礼

pen_pen_penさん、ありがとうございます。 解決いたしました。

その他の回答 (2)

  • zexos
  • ベストアンサー率34% (16/46)
回答No.2

関数ではなくメニュー「書式」→「条件付書式」を使用して、セル内の値に応じて書式を変える方法があります。

  • hyde19
  • ベストアンサー率29% (196/661)
回答No.1

1つのセルに1つの数字が入っているという解釈でいいのでしょうか? セルや文字に色を付けるには、書式設定をするしかないのですが、通常の計算式ではできません。(マクロならできますが、数値が変更したらマクロを手動で動かす必要があります) そこで、「条件付き書式」が便利です。各セルの設定として条件「セルの値が1のとき」は文字は赤、背景は黒、と設定できます。もちろん、設定すればコピーもできます。 メニューの 書式 > 条件付き書式 を見てください。

drive11
質問者

補足

回答頂いた方々、ありがとうございます。 ちなみに、「条件付き書式」では3条件までしか設定できずVBAでの対応を考えて」おります。 引き続きお願いいたします。

関連するQ&A