• ベストアンサー

セルの色によって条件文をつけることはできますか?

Excelでの質問です。vista利用。 セルの色によって条件文(IF)をつけることはできますか? やりたいのは、下図で説明しますと、 A1のセルに色付が入ったらB1とC1のセルを掛け算し、 D1のセルに表示。(Dセルにif文) A2のように色無なら、Dは計算しない(表示しない)。 例      A           B     C   D 1  色付セル        3     2   6 2  白セル(色無し)    5     4    3  色付セル        2     6   12 A列には、別のデータシートからデータをコピーし貼り付けます。 全て数字が入っているのですが、数字は無視し、背景の色で判断します。 このようなことはできますでしょうか? 説明が下手で申し訳ないのですが、教えていただけると助かります。 よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 横からお邪魔します。 VBAの一例です。 A列には必ずデータが入っていて、1行目からあるとします。 尚、A列の色は何色でも関係なく、色がついていればD列に掛け算を表示するようにしてみました。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1).Interior.ColorIndex <> xlNone Then Cells(i, 4) = Cells(i, 2) * Cells(i, 3) End If Next i End Sub 'この行まで こんな感じではどうでしょうか? 尚、A列の色の限定があるのであれば当然コードは少し変わってきます。 参考になれば良いのですが・・・m(__)m

mameta77
質問者

お礼

大変遅くなってしまい申し訳ありません。 とても丁寧に教えていただき、本当にありがとうございました。 教えていただいたコードで、質問時の場合にはちゃんと動作することができました! ただ、少し位置が異なると途端にNG。。。(一応コードを修正してみたりしたのですが、、、) もしお時間があれば、教えていただけたら幸いです。 ありがとうございました。 新たな質問URLです。 http://oshiete1.watch.impress.co.jp/qa6898821.html

mameta77
質問者

補足

ありがとうございます!! 非常に助かります! が、今、データのあるPCとは別の場所に来てしまった為、明日、確認させていただきます! VBAコードまで丁寧に記載していただき、大変感謝です。(全く理解できないレベルですが) コピペでできることを祈るのみです。 取り急ぎお礼まで。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! たびたびお邪魔します。 No.3さんの回答を拝見して気になったので、再びお邪魔しました。 No.3さんが仰っているようにA列のセルの色が条件付書式によって付けられているのであれば 前回のコードでは全く反応しません。 コード内にその条件を組み込む必要があります。 もし条件付書式で色が付けられている場合、具体的な条件さえ判れば可能です。 前回のコードは単に手作業で色を付けた場合のみ有効です。 何度も失礼しました。m(_ _)m

mameta77
質問者

お礼

大変遅くなってしまい申し訳ありません。 とても丁寧に教えていただき、なおかつ時間を割いて再度ご回答下さいまして 本当にありがとうございました。 教えていただいたコードで、質問時の場合にはちゃんと動作することができました! ただ、少し位置が異なると途端にNG。。。(一応コードを修正してみたりしたのですが、、、) もしお時間があれば、教えていただけたら幸いです。 ありがとうございました。 新たな質問URLです。 http://oshiete1.watch.impress.co.jp/qa6898821.html

mameta77
質問者

補足

ro-maji de sumimasen. goteinei ni arigatou gozaimasu. totemo ureshiidesu!! PC furyou no tame,oshiete itadaita code wo tamesu koto ga mada dekite imasen... moushiwake arimasen. tonikaku oreidake saki ni otsutae shitaku te komento dake kakasete itadakimashita. arigatou gozaimasu.

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

セルの色を判断できる関数はありません。マクロを使うことになるでしょう。それ以外にどうしてもということでしたらA列で色つきセルとした条件(条件付き書式)があると思いますのでその条件を使って式を組み立てることですね。

mameta77
質問者

お礼

ご回答ありがとうございました。 質問の締めが遅くなってしまい申し訳ありませんでした。

mameta77
質問者

補足

回答ありがとうございます。 マクロだとどういったマクロになりますか?マクロで色判断ができる方法がわかりません。。。 すいません、教えていただけますか?

  • tori2007
  • ベストアンサー率40% (32/80)
回答No.2

こちらの「セルの色を別のセルに表示させるユーザー定義関数」を使って、A列のセル色を表示させた別のセルの文字をIF文に組み込めばできると思います。 http://www.relief.jp/itnote/archives/001873.php もしくは下記の質問回答にあるようにVBAで組むかでしょうか。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1115354576 ご回答になっていればいいのですが。

mameta77
質問者

お礼

ご回答ありがとうございました。 質問の締めが遅くなってしまい申し訳ありませんでした。

  • MRT1452
  • ベストアンサー率42% (1391/3293)
回答No.1

VBAならば可能だとは思いますが、式では無理じゃないかな。 式でやるのであれば、キーとなる値で判定させる方が現実的かと。 if(A1<>"";B1*C1;"") みたいな感じで。

関連するQ&A

専門家に質問してみよう