• ベストアンサー

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

教えてください。 エクセルで、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もまったく分かりません。。 是非、よろしくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>VBもまったく分かりません。。 とのことですが、簡単ですから以下に書いた通りに操作してみてください 入力するシートの「タブ名右クリック」→「コードの表示」で開く画面に以下のマクロを貼り付けます。この画面(VBE)を閉じて、シートにA,B,Cのいずれかを入力してみてください。(半角、全角どちらでもOK) すると入力したセルと、その上のセルの色が変わります ただし1行目に入力したときは、入力したセルのみの色を変えています Private Sub Worksheet_Change(ByVal Target As Range) Dim cIdx  With Target    Select Case StrConv(.Value, vbNarrow)      Case Is = "A"        cIdx = 8      Case Is = "B"        cIdx = 6      Case Is = "C"        cIdx = 3      Case Else        cIdx = xlNone    End Select    .Interior.ColorIndex = cIdx    If .Row > 1 Then      .Offset(-1, 0).Interior.ColorIndex = cIdx    End If  End With End Sub

yuritanaka
質問者

お礼

早々の御返事ありがとうございます。 早速、ご教授いただいた通り試してみました。 希望どおり出来ました! 大変感謝しております。誠に、ありがとうございました。 また、なにかありましたら、是非よろしくお願いいたします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

条件付き書式も、値の変化に、即座に反応するところから、メモリに展開した、セルごとの(セル属性なのでセルごと)情報を記録して、保持していることは間違いない。すると設定セルや種類が増えると、条件付書式で使える、メモリのエリア(許容範囲)で、制限をオバーする場合は、動かなくなったりすると思う。 条件付き書式の情報を保持する許容メモリエリアが固定なのか、他と取り合いする部分があるのか、全体として上限があるのかなど、エクセル内部情報であるため、(発表されているかも知れないが、不勉強で)小生にはわからない。 知りえるのは#1でご紹介のWEB程度です。 条件とそれを設定されたセル(セル範囲)の関連づけはどのようにしているのかも知りたいが、不知. たたし、nセルに条件設定時使用メモリ=1セルに条件設定メモリxn(単純比例か、それに近い)かどうかは、これも内部の仕組みを知らないと判らない。関数式などでは、比例にならないように、処理スピードを上げるため、同じ型の式などの設定は、比例しないように関数式の情報のメモリ保持を考えていると思う(関数の利用はエクセルではメインの機能だから)。 ーー 提案 1 条件付書式で、1セルに設定して、そのセルの書式のコピー方式でなく、固まった範囲で同条件のセルは、まずそれらのセル全体を範囲指定して、条件付書式を設定すると、少しでもメモリの使用を軽減できないか、いつも小生は夢想している。仕事で使ってないので、1000を越える、多数セル条件設定例の例にぶつからずテストできてない。同じならMSとして改良の余地アリと思う。 2007などではこの辺(条件付書式)が拡充されたので、この点も改良されたかもしれないが、これも不知。 (たとえると、A1=赤、A2=赤、A3=赤の時、3単位で保持するのでなく、A1:A3=赤と1単位で保持するようなたとえ) そういう工夫があっても、セルが増えると、いつかは制限メモリを越えることにはなる。 ーー 提案 2 確たる根拠は無いが、できるならエクセル2007に移行して、やってみる手はあるのではないですか。 ーー  以上生半可な知識で言っているので、参考程度によろしく。

yuritanaka
質問者

お礼

御返事ありがとうございます。 また、ご提案いただきありがとうございました。 参考にさせていただきます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

>もしかして、条件付き書式には、書式のコピーができる制限があるのでしょうか? お察しの通りです。 マイクロソフト サポートオンライン / Excel でエラー メッセージ "表示形式を追加できません" が表示される  http://support.microsoft.com/kb/213904/ja と同じ現象と思われます。 セルの組み合わせが約4000を超えるとこの状態になります。 いわば Excelの制限です。 罫線を省略したり、使用するフォントを一つにしたり、セルのパターンを無しにすることで回避できます。 ・・・セルに色をつけているようですので、別のブックを作成してそちらに続きを作成するようにしましょう。

yuritanaka
質問者

お礼

早々のご返事ありがとうございます。 また、マイクロソフトのサイト情報ありがとうございました。 約4000を超えると保存できないんですね・・・ 大変参考になりました。

関連するQ&A

  • エクセルのセルへの色づけ方法について

    現在、エクセルで統計用のデータシートを作っているのですが、あるセルにデータが入力されると、別の列で同じ行のセルの色が変わる、という設定をしたいのです。 たとえば、 B列のセルに数字or分数が入れられた場合はA列同行のセルが黄色 C列のセルに数字or分数が入れられた場合はA列同行のセルが赤色 D列のセルに数字or分数が入れられた場合はA列同行のセルが青色 E列のセルに数字or分数が入れられた場合はA列同行のセルが緑色 表自体はAに入力されているデータで管理されているので、そこから横に派生していく条件によってAのステータスが確認できるようにしたいと思っております。 つまり、B,C,D,E,のいづれかにデータが入力された場合、その列に応じてAの色が変わるという設定です。 色が3色だったら条件つき書式で設定が出来ましたが、四色以上になってくるとIF関数を使い =IF(B1>=1,"S",IF(C1>=1,"O",IF(D1""," ","D")))みたいな式を設定し 更にそのセルを確認して色を変える方法しか思いつかず。。。 ただでさえ非常に横に長いシートなので、不必要に使用する列を増やしたくないのと出来るだけ簡素化した表にしたいと思っております。 どなたかエクセルに詳しい方がいらしたらご教示いただけないでしょうか? 尚、エクセルは2003でOSはVISTAを使用しております。 お手数ですが宜しくお願い致します。

  • エクセル2007でのセルの自動色付けについて

    エクセル2007を使用しています。 例えば、A1:D20の各セルに数値が入力された時、20以下の数値は青色、21~40は黄色、41以上は赤色としたい時は、どのようにしたら良いのでしょうか。 「ホーム」→「条件付き書式」→「新しい書式」→????この後がわかりません。 それとも別の方法があるのでしょうか。 どなたかご教授をお願いいたします。

  • セルの色付け

    B列に何か文字でも数字でも入力されれば(空白でなくなれば) A列のB列と同じ行のセルに色がつくという設定をしたいと思います。 条件付書式で設定ができると思うのですが どうすればいいでしょうか?

  • エクセルVBA 条件にあうときセルを塗りつぶすには?

    エクセルVBA 条件にあうときセルを塗りつぶすには? エクセルVBAについて教えてください。 _________A 列 _________B 列_________C列_________D列 -------------------------------------------- 1行| 基準値_________ 5_____________1____________8 2行| りんご____________1_____________9____________0 3行| みかん___________12___________5____________3 4行| ぶどう____________15___________7____________8 5行| バナナ____________3_____________1____________4 上図のようにデータがあります。 (実物は列行共に膨大です。また条件を4つ以上つける予定なので条件付書式は使えません) 各列の基準値に対して、セルの増減が、0以下のときに黄色に、5から8のとき大きくなるときに赤、9以上のときに青にセルの色を塗りつぶしたいです。 どのようにすればよいでしょうか? B列の場合、基準値が5です。 B2のセルの場合、基準値5と1(B2セル)の増減は-4です。 増減が0以下のときは黄色に、増減が5から8のときは赤に、増減が9以上のときに青にするので、このときは黄色に塗りつぶします。 B3のセルの場合、基準値5と12(B3セル)の増減は7です。 増減が5から8のとき赤に塗りつぶすので、このセルは赤に塗りつぶします。 B4のセルの場合、基準値5と15(B4セル)の増減は10です。 増減が9以上のとき青色に塗りつぶすので、このセルは青色に塗りつぶします。 C2のセルの場合は、C列の基準値は1(C1セル)です。 基準値1と9(C2のセル)の増減は8です。 増減が5から8のとき赤に塗りつぶすので、このセルは赤に塗りつぶします。 よろしくお願いいたします。

  • エクセルで複数の条件でセルの色を変える方法

    エクセルで、ある条件+ある条件、2つ合わさった時にこの色になる。 というような表を作りたいと思っています。 A1に何らかの文字が入力されていて、尚且つ、B1がりんごだった時、 C1が赤色になる。 (A1に入力されるものはランダムです) また、B1にバナナと入力したら、C1が黄色になる。 と、ある条件+もう一つの条件で、セルの色が変わるようにしたいのです。 以前こちらで検索をし、条件付書式で、 A1が空白以外だった場合にセルの色が変わる数式を見たのですが、 忘れてしまい探したけど見つけられませんでした。。 (その時発見した数式に、+で違う数式をくっつけ、その時は上記のような表を作る事ができました。) その時見たのは、ISBLANKや=B1<>""のようなものではありませんでした。。 その時と同じでなくて良いので、条件付書式で上記のような表を作る方法を教えてください。

  • セルを自動的に色づけ

    現在、エクセルにて工程表を作成しておりますが、行き詰っております。 あるセルに数値を入力したら、自動的に別のセルが色付けされる様な工程表を作成しようとしているのですがうまくいきません。 条件付き書式では1行ならば可能なのですが2行など複数行になるとできません。 例としては以下になります。 例)セルA1に5と入力すると、セルB1~F1までが黄色に色づけされる (※伝わりにくい部分もあると思い画像も添付いたしました。) どうしてもわからなくて質問いたしました。 作成方法、もしくは参考になるサイトなどありましたら、教えてください。 よろしくお願いします。

  • エクセルで、あるセルを参照に空白のセルを塗りつぶす方法

    仕事で毎時間の各商品の売れ具合を、エクセルで日々表にしています。表は多い(多)普通(普)少ない(少)無し(無)と数段階に区切って表示して、それぞれに(多)なら赤、(普)なら黄~とそのセルを塗りつぶしています。表内のセルには、条件付き書式をかけているのでA商品の売り上げ9時台が「普通」なら、対象のセルに普と入力すると、そのセルは自動的に黄色で塗りつぶされるようにしています。 そして、9時台が「普通」で、同じ商品の10~14時台まで同じ「普通」の売り上げが続き、15時に「多い」になったら、10~14時台のセルを9時台と同じ状態が続いたということで、セルの中には何も入力せず、色だけ黄色で塗りつぶしています。 (一つの商品は時間毎に右のセルに移動して、始めから終わりまで同じ行で表示しています。) 前置きが長くなってしまいましたが、質問させていただきたいのは、 あるセル(例:セルA2)に「普」と入力し、塗りつぶしも(条件付き書式で自動的に)黄色になった場合に、そのセルの右隣のセル(例:セルB2)に何も入力されていなければ、同じ色(黄色)に塗りつぶし、さらにその右隣のセル(例:セルC2)にも何も入力されていなければ、これも同じ色(黄色)に塗りつぶす~という作業を、同じ行の右隣のセルに何か入力されるまで繰り返す。という指示をエクセルに与えることは可能でしょうか?(ソフトはエクセル2000を使用しています) 自分で関数で色々試してみましたが、出来ずに困っています。 これは、マクロ(VBA?)というもので、出来るのでしょうか? 私はマクロを全然使ったことが無いのですが、もしマクロで出来る場合、マクロ初心者の私では難しいでしょうか? 長々とした、わかりづらい質問で申し訳ありません。 宜しくお願いいたします。

  • VBAでセルに色付けは?

    教えてください エクセルの条件付き書式では下記の 事ができません。 VBAでセルに色をつける 方法を教えて欲しいのですが。 例 セルA1 に 10   セルB1 に 入れた数字が      10以下なら   青   11から20なら 赤   21から25なら 黄   26以上なら   ピンク   と言う感じで  B1 のセルに   その数字と色を表示したいのですが   最終的には8色表示にしたいです。   よろしくお願いします   WINXP  EXCLは2002です

  • セル結合させてるときの 条件付き書式での色づけ方法

    いつも、お世話になっております。 先ほど、土日祝の色づけ方法をわかりやすく、教えていただきましたが、もし、下記のようなセル結合されてるときはどうすればいいのかわからないので、ぜひよろしくお願いします。 【A1】に年月  【A2-Z2】に日付←A2とB2はセル結合(Zまで2つづつセル結合) 【A3-Z3】に曜日←上記と同じくセル結合 【A4-Z4】に掲載欄に数字が入ります。←セル結合なし 【AP1-AP5】に仮に休日表を作ったとします。 【A1】に【=A1】と入力 【C2-Z2】に【=A2+1】 【A3-Z3】に【=A2】 【AP1-AP5】に“1/1” のように休日を入力 2行目に書式→セル→表示形式の分類に日付 3行目に書式→セル→表示形式の分類でユーザー定義→種類に(AAA) で、色づけは2~4行目まで条件書式にしてますが、下記の方法だと4行目のB4・D4・F4・・・・(ひとつ飛ばしでZ4まで)が色がつかないのです。どうしたら4行目すべてに色がつくでしょうか・・・???? 【形式が】【=(WEEKDAY(A$2)=1)+(COUNTIF($AP$1:$AP$5,A$2)>0)】赤

  • エクセル条件付き書式をマクロにしたいです

    Excel2007使用しています。 類似質問が見つかりましたが、VBA勉強中でそこからの応用ができないので 教えていただけると助かります。 条件付き書式を毎回作成するのが大変なので、マクロで自動設定したいと考えています。 条件付き書式で設定していたのは「C4に指定文字があったら、B4・C5・D4・E4のセルを指定した色に塗りつぶす」を5パターン使用していました。 色を変えるかどうか判断する文字が含まれているのはC列にあります。 C4に「ああ」の文字があればB4・C5・D4・E4のセルを赤色に塗りつぶす C4に「いい」の文字があればB4・C5・D4・E4セルをアクア色に塗りつぶす C4に「うう」の文字があればB4・C5・D4・E4セルを黄色に塗りつぶす C4に「ええ」の文字があればB4・C5・D4・E4セルをオリーブ色に塗りつぶす C4に「おお」の文字があればB4・C5・D4・E4セルを紫色に塗りつぶす これを、C4から文字がある行まで(200行~15,000行まで対象行数が変動)処理して欲しい イメージで伝えて申し訳ありません、 情報足りなければご指摘いただければと思います。 どうぞ宜しくお願い申し上げます。

専門家に質問してみよう