• ベストアンサー

空白と空白じゃないセルを判断するには?

いつもお世話になっております。 条件により別のセルへ文字列を入力するという物を組みたいのですが、あてはめるべき表現の仕方がわからなくて困っております。 例で申しますと、 D列とE列に文字列が入っていたり空白だったりするセルが存在します。 条件は 「D列に何かしらの文字列が入っていて(特に決まった形が無い)、E列は空白の時だけ、F列へ「■」と入力し、G列は空白とする。」 「それ以外の条件はすべて、F列は空白、G列には「□」と入力する」 と、いうようにしたいのですが、空白は Dim i As Long For i = 3 To Range("B65536").End(xlUp).Row If Range("D" & i).Value = "" Then のように表現すればよいのかと思ったのですが、 「空白ではない」場合の条件をどのようにすればよいのかわかりません。(その為、全文を作る段階へ進めておりません。)   |D|E|F|G 1|あ| |■| 2|あ|え| |□ 3| |か| |□ 4| | | |□ 「空白ではない」と判断するコードの書き方をお教えいただきたく、よろしくお願いいたします。 環境はWindowsXP、Excel2003です。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

D列:入力あり、かつ、E列:未入力、→ F列:■ それ以外 → G列:□ '------------------------------------------- Sub test()  Dim i As Long  For i = 3 To Range("B65536").End(xlUp).Row    If Cells(i, "D").Value <> "" And Cells(i, "E").Value = "" Then      Cells(i, "F").Value = "■"      Cells(i, "G").Value = ""    Else      Cells(i, "F").Value = ""      Cells(i, "G").Value = "□"    End If  Next i End Sub '--------------------------------------------- 提示の表ではデータが一行目から始まってますが、 提示のコードでは、データが3行目から始まっているようになってますよ。 で、コードの方を尊重して、3行目からにしました。 以上、ここまで。  

saiwai
質問者

お礼

ご回答ありがとうございます。 全文お書きくださり、誠にありがとうございます! 先ほど実際に確認して、まさにやりたいことが出来ました! 実際に使用する表が3行目からスタートだったので、この状態で完璧です。 このような夜分にありがとうございました。 明日さっそく組み込んでみます!

その他の回答 (2)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

「空白ではない」のでしたら Range("D" & i).Value <> "" でいいと存じますが。  スペースが入っているだけは「空白」とみなすような場合でしたら、 Trim(Range("D" & i).Value) <> "" ということになりますか。  「空白」の場合と「空白ではない」場合で分岐させたいというような意味でしたら、 If Range("D" & i).Value = "" Then '「空白」の場合の処理 Else '「空白ではない」場合の処理 End If のようにします。

saiwai
質問者

お礼

ご回答ありがとうございます。 <>""でよかったのですね! 今日は一日職場でネット検索をしていてもまったくわからず苦慮しておりました。 こんな夜分にお答えいただき、ありがとうございました。

回答No.1

【F1】 =IF(AND(D1<>"",E1=""),"■") 【G1】 =IF(F1="■","","□") で良いのではないでしょうか?

saiwai
質問者

お礼

ご回答ありがとうございます。 マクロで動かす事が目的でしたのでご提案いただいた式が使えず、申し訳ありません。 このような夜分にお答えいただき、ありがとうございました。

関連するQ&A