• ベストアンサー

同一セル内での複数条件による抽出

セルの背景色で条件抽出をしております。 A1背景色=赤→A3に「OK」書き出し、という具合です。 背景色がある場合の抽出はできるようになったのですが 同一セルで 「背景色なし」かつ「文字が記入されている」 ときに 他セルに「NG」などの文字が出るようにしたいのですが VBAで可能でしょうか? 以下の部分まで(背景色がある場合)は出来たのですが。 御教授宜しくお願いいたします。 Dim 行番号 As Integer 行番号 = 7 Do Until Cells(行番号, 1).Value = "" If Cells(行番号, 9).Interior.ColorIndex = 5 Then Cells(行番号, 14).Value = "教えて" ElseIf Cells(行番号, 9).Interior.ColorIndex = 7 Then Cells(行番号, 14).Value = "GOO" End If 行番号 = 行番号 + 1 Loop

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

> If Cells(行番号, 9).Interior.ColorIndex = 5 Then のうち、Cells(行番号, 9).Interior.ColorIndex = 5 の部分を論理式 といいます。複数の論理式がある場合は、And 演算子で連結します。 例)If (論理式A And 論理式B) Then このとき、論理式A、B ともに True のとき、()内が True となります。 > 「背景色なし」 Cells(行番号,列番号).Interior.ColorIndex = xlColorIndexNone >「文字が記入されている」 Cells(行番号,列番号).Value <> "" または、 Len(Cells(行番号,列番号).Value) > 0 または、 IsEmpty(Cells(行番号,列番号)) = False

fu1974
質問者

お礼

ご回答ありがとうございます。 早速プログラム入力させて頂きました。 無事、動きました! 不慣れなプログラミングで悪戦苦闘中、本当に助かりました。 感謝、感謝です。 自己努力を続けながらも、またお世話になるかと思います。 その節は宜しくお願いいたします。 ありがとうございました。

その他の回答 (1)

  • Nasvi
  • ベストアンサー率36% (4/11)
回答No.2

if Cells(x1,y1).Interior.ColorIndex = xlNone and Cells(x1,y1) <>"" then Cells(x2,y2).Value="NG" End if のようにすればできますよ。 ifの条件式にandを利用しただけのものです。 質問の意図と回答がズレていたらごめんなさい。

fu1974
質問者

お礼

ご回答ありがとうございます。 無事、動きました!。 プログラム初心者で、悪戦苦闘中です。 分からないことだらけで、本をみても、検索しても さっぱり分からず の中、的確なアドバイスを頂き大変助かりました。 またお世話になるかと思いますが、その節は宜しくお願い致します。 誠にありがとうございました。

関連するQ&A