セル内の値が空の場合と条件をつけるには?

解決


poi  2005-01-19 13:29:27  No: 119049  IP: [192.*.*.*]

Visual basic 6.0でExcelマクロを作成してます。
セル内(A1)が空の場合、という条件をつける場合、
If .Range("A1").Value = Null Then
と記したのですが、エラーになります。
この条件をする場合、どのようにコードを記載したらいいのか教えて頂けますよう宜しくお願い致します。

編集 削除
特攻隊長まるるう  2005-01-19 14:10:13  No: 119050  IP: [192.*.*.*]

長さ0の文字列として評価できます。
   If .Range("A1").Value = "" Then
前回の質問も考慮に入れ、
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200501/05010096.txt
Range.Value で得られる値は Object 型とか、Variant 型
といった類のものです。 
変数の型を意識したコーディングをするのは大事です。長さ
0の文字列は String 型ですので型を一致させるために
型変換関数を使ってみましょう。
   If CStr(.Range("A1").Value) = "" Then

編集 削除
poi  2005-01-19 14:19:16  No: 119051  IP: [192.*.*.*]

早速のご回答ありがとうございます。
因みに空以外の場合、
 If .Range("A1").Value != "" Then
だとエラーになるのですが、この場合、どのようにコード記載したらよいのでしょうか?
重ね重ね申し訳ございませんが、宜しくお願い致します。

編集 削除
INA  2005-01-19 14:22:20  No: 119052  IP: [192.*.*.*]

>If .Range("A1").Value != "" Then

! が余分では?

>エラーになるのですが、
何エラーですか?
親オブジェクトの指定に問題はありませんか?

編集 削除
poi  2005-01-19 14:22:30  No: 119053  IP: [192.*.*.*]

すいません。訂正です。
●訂正前
If .Range("A1").Value != "" Then

●訂正後  
If CStr(.Range("A1").Value) = "" Then

編集 削除
魔界の仮面弁士  2005-01-19 14:25:37  No: 119054  IP: [192.*.*.*]

VB系は、『!=』ではなく『<>』ですね。
ヘルプのキーワード検索で『比較演算子』についても読んでおいてください。


書き方を変えれば、『=』しか知らなくても、一応実装できますけどね。(^^;
  If Not .Range("A1").Value = "" Then

  End If
とか、あるいは、
  If .Range("A1").Value = "" Then
  Else
     (実際の処理)
  End If
とか。(まぁ、読みにくいだけですけど)

編集 削除
poi  2005-01-19 14:46:53  No: 119055  IP: [192.*.*.*]

皆さん、ご回答ありがとうございました。

>VB系は、『!=』ではなく『<>』ですね。
でできました!ありがとうございました。

編集 削除