• ベストアンサー

エクセルでセルの色を参照したい。

エクセル2010で、例えばA列(複数行の結合セル)に日付が入っていて、B列にその日の作業人数、C列にトータル仕事量が入るような表で、 仕事量が作業者数を超える場合、日付けセルに色が付くように書式設定してあるのですが実際の表は1日分の行数がこれ以上に多いので3-4日間程度の予定しか確認できない表になっています。 これだと月の予定が見えにくいので、別の表の日付のセルにその日の色を参照させたいのですが。 イメージとしては添付の表のような表示がさせたいのですが、セルの色参照は簡単には行かないのでしょうか?

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

  • ベストアンサー
  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.1

マクロを使えば可能ですが・・・します? 任意のセル色の取得・・・ https://www.tipsfound.com/vba/07005 を使えば可能です、っんでその取得した色指定方法を セルに色を設定する ・・・ https://www.tipsfound.com/vba/07006 これでできますよっ

akira0723
質問者

お礼

早々のご回答ありがとうございます。 ご察しの通り「・・・します?」の感じです。 以前どうしても必要で、ここで教えてもらいながら何とかマクロで対応したことが有るのですが、今回はその労力でカレンダの31個のセルに書式設定出来てしまいそうなので今回はマクロは遠慮させてもらいます。 お手数をおかけしました。

akira0723
質問者

補足

やはり色問題はマクロでの対応となってしまうのですね。 今回はコツコツと31回X2色の書式設定で確実に対応したいと思います。 HPは今後の参考に取っておきます。 ありがとうございました。

その他の回答 (3)

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

質問者のエクセルのスキルは、エクセル関数をつかう程度でしょうか。 エクセルのデータは 主に扱うのは (1)セルの値 (2)セルの書式、表示形式 その他が在りますが略。 があります。 このうち、エクセル関数で扱うのは、(1)だけです。(2)は関数の対象になりません。このことを知らない質問者が多い。正規にエクセルの講習を受けたり、本でじっくり勉強してないからでしょう。また講師レベルでも、この点を大切と思わず、力説しないのでしょう。 多分歴史的に表計算とその関数が、作られた当初のころは、(1)だけで精一杯だったのでしょう。メモリや処理速度、顧客ニーズなどの点で。 その後、本質問のような(2)に絡んだ質問が出ますが、そう多くはなく。MS(マイクロソフ)エクセルもそこへ至っていません。多分意識して、一線を引いているのでしょう。あるいはVBAを使えばできるから、どうぞかもしれない。 しかし検索などでは、昔は(1)だけだったのに、新しいバージョンでは(2)による検索が可能になってきています。 ーー エクセルVBAを勉強すれば、すぐできることですし、コードはWEBを調べればすぐわかります。 他に、セル結合を使っている点は、VBAでどうとらえるか、の要勉強点ですが。 要はVBAの基礎をやる気があるかどうかであり、個人の性向で、そこまでやる気がしない人も多いようです。 セルの色付けのVBAでの表現も数種類あります。 本件はセルに色を「設定」の逆の、「取得」のパターンになります。 == 質問者の関心が出そうな点は、 条件付き書式で、セルの色が着けられている場合は、その「条件」を具体的に調べて、その条件が、エクセルの「関数で表現できる」なら(例○○より大)、その条件で、別途関数を使って、シートの上でその行を抜き出せば、質問者の要望は出来ると思う。 しかし「エクセルの関数での抜出問題」は、エクセル関数の上級の経験が要るように思うので、すぐに思いつくかどうか?

akira0723
質問者

お礼

お仰る通りです。 以前色問題でVBAで対処したことが有るのですが、今一使いこなせなくて不安があるので今回は手作業でカレンダーに書式設定するのが一番確実のようです。 参考になりました。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

セルの色情報を取得するのはANo.1の回答の様にVBA必須。 でも、この内容なら条件付き書式で対応可能です。 条件付き書式の条件を数式にして、Vlookup関数で作業者数を取得します。 添付の図の例では、以下の様な数式を使っています。 =(VLOOKUP(G2,$A:$B,2,FALSE)=7)

akira0723
質問者

お礼

早々のご回答ありがとうございます。 試してみたのですが何故かうまく行きません。 VLOOKUPで検索値を範囲指定できましたっけ? もう少し頑張ってみます。

  • kanti42
  • ベストアンサー率26% (8/30)
回答No.2

このやり方はマクロで色番号必要ですので、色ではなく列(非表示)を追加して 色分け同様に、条件関数なり入れて超えていれば1超えてなければ0なり情報いれて、識別すれば関数使って簡単にできると思います。 IF関数で超えてる超えてない判断して1か0を指定セル書き込み 条件付き書式で1であれば0であればという方法もあります ご参考まで...

akira0723
質問者

お礼

ご回答ありがとうございます。 なるほどのご回答で参考にさせてもらいます。

関連するQ&A

  • エクセルで日付セルの参照先が空白の場合の書式設定

    エクセル2016です。 例えばシート1のA列に日付を入れる表があって、そのA列のセルを参照してシート2の$B$2に同じ日付が入る表があります。 このA列への日付の入力を忘れがちなのでシート1のA列が空白セルの場合(=シート2のB2セルが1900年1月1日となる)はセルを赤色にしたいのですが。 書式設定で、セルが「1900年1月1日」の時、としてもうまくいかないのですが。 シート2のB2はOFFSET関数でA列の値を引っ張るので、A1=""では書式が設定できませんのでよろしくお願します。

  • Excelで隣のセルを参照して色分け

    こんにちは。 Excelの表で、例えば会社名がA列のセルにあって、 B列に営業担当が入力されているとします。 A列    B列 ◎会社  山田 △会社  鈴木 A列の会社名のセルををB列の担当を参照して、山田なら黄色、鈴木なら青 の様に書式設定をしたいのですが、どの様に設定したら良いでしょうか? 条件付書式だとそのセルのみを参照ですので、隣のセルを参照してと いう設定は出来ますか? よろしくお願いします。

  • エクセルで土・日のセルに幅広く色をつけたい

    エクセルで予定表を作成しています。A列に日付・BからH列まで項目を設けています。(A列は、33行目まで日付が入力されています) A列に条件付書式で、条件付書式の設定で条件(1)数式が=WEEKDAY(A33)=1  パターン  色  ブルー  フォント  赤 A列に条件付書式で、条件付書式の設定で条件(2)数式が=WEEKDAY(A33)=7  パターン  色  グリーン フォント  赤 の設定を行いました。 A列の 土・日のフォントが赤に、セルの色がブルー・グリーンになるのですがBからH列はセルに色がつきません。 A33:H33  までの設定にするとセルの色がグレーになります。 AからHまでセルに同じ色を表示する設定はあるのでしょうか。

  • excel 参照しているセルに色がついていたら、返すセルにも色もつける

    excelの詳しい方、ぜひ教えてください! Sheet1にあるデータを、計算式によってSheet2に参照させていますが、Sheet1のセルの色までは参照する事ができません。 計算式はいたって簡単で、例えばSheet1のA1を参照している時は、Sheet2のセルに =Sheet1!$A$1 と計算式を入力しています。 条件付き書式や関数も考えたのですが、 ”もし、参照しているセルに色がついていたら、返すセルにも色もつける” をどうすれば出来るのかわかりません。 どうか、わかる方ぜひ教えてください。お願いします!!

  • エクセルで結合セルを参照する場合の書式設定

    エクセル2010です。 A列が3行毎の結合セルになっていて、その結合セルには日付けが入っているのですが、結合セルの日付けがtodey()より小さい(過去)の場合、B列、C列、D列・・・を行方向に書式設定したいのですがうまく行きません。 範囲全体を指定して、A1<today()でダメだったので、B1:F1と範囲指定してA1<today()、B2:F2と範囲指定してA1<today()、B3:F3も同じようにA1<today()とA1セルの横の3行をバラバラで書式設定して、書式コピーして範囲全体に貼り付けても部分的におかしな色になってしまいます。 何か方法があるのでしょうか?

  • エクセルにて結合セルの範囲を参照するには?

       A B C D E F 1 |フォード| 2 |BMW | 3 |ホンダ | 各行A列~C列3つを結合入力 4 |ルノー | 5 |DFR  | 6 |ベンツ |  上記のようなエンジンメーカー表にて、A1~C1,A6~C6間にF1へエンジンを供給しているメーカー名がA~Cの3つのセルを結合して入力されているとします。  このような表を用いて別のワークシートから、このエンジンメーカーの入力セルの文字列を参照したいのですが、  フォードの場合ですと、=’エンジンメーカー表’!A1:C1と表示され、エラー値VAULEが返され、参照したい文字列が返りません。  結合されている3セルに範囲名をつけてINDIRECT関数で参照すれば出来るのですが、結合セルの項目が多過ぎて、いちいち、名前をつけていられないのです。  また、表のセル結合を崩せないのです。(同じフォーマットで作られている表が多数存在のため) このような単一セルでなく、複数のセル範囲を結合して入力されている文字列を簡単に=で参照する方法は無いでしょうか?

  • 結合セルからの参照

    excel2007で、別シートの結合セル(縦方向に3行結合)から値を参照したのですが、3列分含まれてしまい、エラーが出てしまいます。 数式の内容から余計な部分を削除すれば問題ないのですが、作業量が増えてしまいます。 一発でエラー無く参照できる方法があれば教えて下さい。 よろしくお願いいたします。

  • エクセルで、指定した期間だけ色を付けるには?

    条件付書式を使って考えてみたのですが、 なかなかうまくいきません。どなたか教えて下さい。 A列(A3~A200)にバラバラに日付が入っています。(作業開始予定日) 「今日の日付」(←エクセルを開いた日)に対して (1)A列の日付が1ヶ月前になったものがあれば該当するセルを黄色にする (2)その後、「今日の日付」から1ヶ月間はセルを緑色にする ※ (1)と(2)に該当しない日付はそのまま無色にする ・・です。よろしくお願いいたします。

  • Excel2010 セル色の変更について

    エクセルの条件付き書式で表の色付けをしていますが 参照先のセルをデリートした時に書式の色が消えなくて困っています 表の構成としては項目(B・C列)は2行で 本日の日付をC3セルに「 =today() 」で表示させ 6行目にあるA・B・C・Dのアルファベットは その項目に対してしなければいけない予定の事象を書き 各項目のD・E・F・G列には 項目内上列に予定事象の期限を自動入力(関数入力済)し 項目内下列は事象実施日を手動で入力するようにしてあります 事象予定日の日付がC3セルと同じ日(当日)になれば事象予定日のセルを赤塗 C3セルの前日であれば黄塗、3日前であれば緑塗で事象予定日のセルが表示され 事象実施日がC3の日付より1日以上前であれば事象実施日を灰塗で表示させています ここまでが現状で、ここからがうまくいきません やりたい事としては 実施日が入力されたら予定日のセルの色も実施日のセルと同様に灰塗にし 実施日が未入力状態であるときは予定日のセル色に対しての変更はかけたくないのですが 実施日に日付を入力をすると予定日のセルも灰色にはなるものの 一度入力された実施日のセルをデリートしても予定日のセルが灰塗のままで戻りません。 予定日のセルに設定した条件付き書式は ・「数式を使用して~」→「次の数式を~」に「=$○$8=""」 書式に白塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+3」書式緑塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値に等しい」「=$C$3+1」書式黄塗 ・「指定の値を含む~」→「次のセルのみを~」に「セルの値」「次の値以下」「=$C$3」書式赤塗 ・「数式を使用して~」→「次の数式を満たす場合に~」に「=$○$8<$C$3」→書式灰塗  ※○の中には相関列文字を入力 この一通りの設定を、項目の上行と下行に対して参照関係になるようにセル位置の指定は変更してあります (E列の数式にはEを、F列の数式にはFを という具合です) これ以上何かを設定しなければいけないのか、どこかの設定が間違っているのか、VBAじゃないとできないのか・・・ どなたかご教授願います。説明の過不足等ありましたらご指摘ください。

  • 結合されたセルの一覧出力 VBA

    お世話になります。 結合されたファイルの一覧を出力したいと思っています。 (できれば、変数に出力したいです) 表があり、ばらばらな範囲で結合されています。 結合した部分には、日付が入っています。 日付が入っている列は、B列とH列で、 その中で「AA」「BB」と入力されている結合セル以外の 結合セル範囲?行?を取得したいと思っております。 B列とH列の結合セル行が同じではありません。 B列は、B5:B13、B18:B25、B30:37 (それ以外のセルは結合してあっても、「AA,BB]と書いてある H列は、H6:H13,H18:H25、H30::H35,H36:H40(上と同じ) ということになっております。 できれば、 1.セル結合範囲を検索(行数取得?) 2.セルの内容が日付かどうか確認 3.日付なら、セル行数を取得 ということがしたいです。 日付の形式は、3/1などのように入っています。 このフォームが結構変わるため、 結合しているセルの中身が日付かどうかを確認し、 日付なら行数取得→色んなプログラムでその行数を使用 したいと思っています。 分かりにくい部分が多いかと思いますが、 回答お願い致します。

専門家に質問してみよう