• ベストアンサー

エクセル2000のセルの色の塗りつぶし設定方法

fumufumu_2006の回答

回答No.2

モジュールで自作関数を作る方法です。 モジュールがいやなら読み飛ばしてください。 ユーザ関数内でプロパティを変更できないので、情報を保存しておいて、Worksheet_Calculate()イベントで設定します。 標準モジュールと自作関数を使用するシート(例えばsheet1)のモジュールに以下をコピーします。 ---標準モジュール ここから--- Public co As New Collection 'インテリアカラー情報保存 Function getInteriorColor(r As Range) As Variant Dim c As Integer Select Case r.Value '以下に条件と背景色を記述 Case Is < 10: c = 5 '青 Case Is < 20: c = 4 '緑 Case Is < 30: c = 8 '水色 Case Is < 40: c = 3 '赤 Case Is < 50: c = 7 '紫 Case Is < 60: c = 6 '黄色 Case Is < 70: c = 2 '白 Case Else: c = 1 '黒 End Select co.Add Array(r, c) '情報を保存 getInteriorColor = "" '戻り値が必要なので""を返す End Function 'インテリアカラー情報設定(Worksheet_Calculateイベントで呼ぶ) Function setInteriorColor() Dim i As Integer For i = 1 To co.Count co.Item(1)(0).Interior.ColorIndex = co.Item(1)(1) co.Remove 1 Next End Function ---標準モジュール ここまで--- ---自作関数を使用するsheetのモジュール ここから--- Private Sub Worksheet_Calculate() setInteriorColor End Sub ---自作関数を使用するsheetのモジュール ここまで--- 以上でB1(実際はどこでもいい)に =getInteriorcolor(A1) とすると、A1の値(計算式でも良い)によってA1の背景色が変わります。 最初に「条件と背景色を記述」の部分を設定しておけば、普通の関数のように使えます。 [注意] getInteriorcolorを使用するsheetに、忘れずにWorksheet_Calculate()イベントをコピーしてください。 複数のシートがある場合は、各シートに必要です。

YuuuukiOh
質問者

お礼

早々のご回答ありがとうございます。 モジュールを操作する、という手もあるのですね。 残念ながら自身がコードの記述についてはからきしなので内容は殆ど理解できませんが、試行錯誤して利用させていただこうかと思います。 短文になってしまいましたが、ありがとうございました。

関連するQ&A

  • セル書式を4つつける方法

    あるセルの値に対して、+5以上なら赤、+3以上ならピンク、-3以下なら薄い青、-5以下なら青という具合にセルの書式を設定したいのですが、良い方法はありますか。 条件付き書式は3つまでなので、ほかに方法があれば教えて下さい。 確か、セルの書式設定でできたと思うのですが。

  • Excelの条件付き書式について

    Excelの条件付書式について教えてください。 次のようなことをしたいです。 (1)10個のセルに次のような条件付書式を設定します。  ・条件1:セルの値が5以上だったらセルの塗りつぶし(パターン)を青色にする。  ・条件2:セルの値が5未満だったらセルの塗りつぶし(パターン)を赤色にする。 (2)別の1つのセルで上の10個のセルを監視して  すべてのセルが青色だったら"PASS"と表示する。  ひとつでも赤色のセルがあったら"FAIL"と表示する。 VBAを使用して、条件付書式が設定されたセルを参照し、 どちらの条件付書式が適用されているのか調べられるのなら、 それでもかまいません。 条件付書式でセルの色(パターン)を設定した場合、 セルの.Interior.ColorIndex 及び PatternColorを参照しても、 塗りつぶしはされてないという扱いになっているようです。 なにか方法があるでしょうか?

  • Excel セル内の特定の文字だけ自動で色を変えたい

    3月13日(土) と一つのセルにと入れた場合、土曜のときは「土」だけ青、日曜のときは「日」だけ赤というような設定はできますか? 条件書式だとセル内のすべての文字の色が変わってしまいますよね。 VBAを使わず、条件書式のような設定だけで行う方法はないでしょうか? Excelのバージョンは2003と2007で考えています。

  • Excelの条件付き書式を行に適用するには

    Excelで条件付き書式ってありますよね。 あの機能を使って セルの値が○○に等しいとき セルの色を設定することはできますが,その行すべてを色を変えるというのはできませんか? 例えばA1セルの値が1なら 1行は赤色。A7セルの値も1なら7行も赤色。 A3セルの値が5なら 3行は青色。 A9セルの値も5なら 9行も青色。 というようにしたいのですが・・・ また, もう一つ質問ですが この条件付き書式は 条件が3つまでしかできませんよね。 例えば 上の条件に付け加えて さらに A10セルの値が4なら 10行は黄色と設定したとすると それ以上できないですよね つまりA11行セルの値が9なら 11行は 緑色としたい場合は どうすればいいでしょうか?

  • エクセルでセルの色を点滅させる方法について

    エクセル2013で作成した表の数値をある条件の元でセルの背景の色を点滅させる方法を教えてください。 条件  下記条件の元でカーソルの背景の色を点滅させる。     データ範囲は C4~F12     VBAでの使用でよいです。 空白は無色 0~99までは緑の点滅 100~199までは青の点滅 200~299までは黄色の点滅 300以上は赤の点滅 合計の欄は点滅対象外とする。 ※色付けは条件付き書式設定による色付けとフォントの塗りつぶしと2通りあります。 方法が違うなら別々に教えてください。

  • EXCELの条件付き書式で、各行のE列よりも当該セルの値が大きい場合は

    EXCELの条件付き書式で、各行のE列よりも当該セルの値が大きい場合は塗りつぶしを赤、小さい場良いには青にするには? 条件付き書式で、例えば E15セルよりも値の大きいF15は赤、小さい場合は青 E16セルよりも値の大きいF16は赤、小さい場合は青 以下、同様 という書式絵っていをF列に等に設定したい場合に 条件記述の上手い方法が分かりません。 Exxのxxの部分が自動的にインクリメントされない気がするのですが どうしたら、上記を実現できますか?

  • VBからEXCELのセルの値を取得する方法

    VBからEXCELファイルのあるセルの値を取得すると、本来の書式設定とは 違った形式で取得されてしまいます。 VBから値を取得する方法を教えて下さい。 *EXCELファイルのセルの設定  セルの書式設定-ユ-ザ-定義-[h]:mm   (時刻ではなく、時間として設定しています) これをVBから普通に取得すると「1.7523548785」などといった 数値になってしまいます。

  • エクセルでのセルの色づけ方法

    教えてください。 エクセルで、8000行、15列程度の表があります。 例えば、A2に、Aと入力すると、A2とA1の両セルが水色 Bと入力すると、A2とA1の両セルが黄 Cと入力すると、A2とA1の両セルが赤 他にも、例えば C4に、Bと入力すると、C4とC3の両セルが赤 Bと入力すると、C4とC3の両セルが黄 Cと入力すると、C4とC3の両セルが赤   などのように、A=水色   B=黄色   C=赤になるように 条件付き書式を設定し、その書式を他のセルへコピーして、 1000行位までは、ちゃんと保存できたのですが、8000行程度まで、コピーして、保存すると、『保存できません』と表示されてしまい、1000行以上は条件付き書式のコピーをしても、コピーはできますが、保存できないため、大変困っています。。。もしかして、条件付き書式には、書式のコピーができる制限があるのでしょうか?あとは、VBなどで対応 するしかないのでしょうか。VBもまったく分かりません。。 是非、よろしくお願いいたします。

  • エクセルで「前回より大きい数字、または小さい数字の場合のフォント色を変

    エクセルで「前回より大きい数字、または小さい数字の場合のフォント色を変えたい 毎日の体重をエクセルで管理したいのですが、前日との違いを色でわかるようにしたいと考えています。 「条件付書式」で、「セルの値が」「次の値より大きい」または「次の値より小さい」「=前回のセル」で書式ボタンでフォントを赤と青の設定にし、書式のみコピーにすると、設定したセルの値は反映されるのですが、前日のセルが反映される方法がわかりません。 よろしくお願いします。

  • エクセルの条件付き書式について

    A1セルに「100」が入力された場合、B1セルの色を赤に、同様にして200:青、300:黄、400:緑、500:赤、600:青、700:黄、800:緑という風にB1セルの色を変えたいと思います。 条件付き書式は3つまでしかないのですが、色のパターンは4種類なので、元の書式と合わせると4パターンです。 条件付書式で、A1セルの値が200又は600ならB1セルの色を青にするにはどうすればよろしいでしょうか。 つたない文章でわかりにくいかと思いますが、よろしくご回答ください。