• ベストアンサー

データ取り出しについて教えて下さい。

データ取り出しについて教えて下さい。 2つのセルに異なった数字が入っており、どちらか一方だけ塗りつぶしされています。 その塗りつぶしされた方の数字を、別のセルに表示したいのですが・・・  たとえば、A1が塗りつぶしされているとします。       A   B   C  1列目  100  120   100  C1に100と表示されるようにしたい。 なにかいい方法があれば教えて下さい。      

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

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

関数によって色が付いているかどうかを判断することはできませんので、塗りつぶしの色を条件付き書式によって設定しているであれば、その条件付き書式で使われた式を使ってC列に値を取り出すことをすればよいでしょう。 それができないのでしたらマクロを使うことになりますね。 マクロの作成ではシート見出しのシート名を右クリックして「コードの表示」を選択します。 表示の画面には次のようなコードを入力します。 Sub 塗りつぶし選択() Dim i As Integer For i = 1 To Range("A65536").End(xlUp).Row If Range("A" & i).Interior.Pattern = xlSolid Then Range("C" & i) = Range("A" & i).Value ElseIf Range("B" & i).Interior.Pattern = xlSolid Then Range("C" & i) = Range("B" & i).Value End If Next End Sub マクロを実行するには「開発」タブで「マクロ」を選択し、表示の画面で「塗りつぶし選択」を選んで「実行」すればよいでしょう。

rewqfdsavcxz
質問者

お礼

思っていた通りに出来ました! 感謝です! KURUMITOさん、ありがとうございました。 関数ではやはり限界がありますね。マクロ(VBA)の勉強もしたいと思います。

その他の回答 (2)

  • BIGEGG
  • ベストアンサー率0% (0/2)
回答No.2

「塗りつぶしされたセルの判定はどうすれば?」 になります。 判定ができれば、あとはどっちのセルをCに持って行くかだけです。 簡単な操作をして新規マクロを作成します。 「セルを選択して、塗りつぶす→塗りつぶすのをやめる」 これだけやれば(プロパティ?の)何がどう変わったかわかるかもしれません。

rewqfdsavcxz
質問者

お礼

やはりマクロは必要不可欠ですね。 苦手意識が高く避けていましたが、勉強してみたいと思います。 ご回答いただきありがとうございました。

noname#187541
noname#187541
回答No.1

こんにちは。 塗りつぶすセルに規則性が有れば出来ると思いますが、そうでなければ基本的には無理です。 別のセルに表示すると言うことは「数式(関数)」を使うと言うことになると思いますが、書式を数式に使うことは通常は無理です。 どうしてもというのであれば「マクロ(VBA)」を使うことになるでしょう。

rewqfdsavcxz
質問者

お礼

M-SOFTさん、有難うございました。 やはり関数では無理ですよね。 ちなみにVBAではどのようなプログラムを組めばいいかご存知ですか? もしご存知でしたら教えて下さい。

関連するQ&A