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

解決


poi  2005-01-19 22:29:27  No: 119049

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


特攻隊長まるるう  2005-01-19 23:10:13  No: 119050

長さ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 23:19:16  No: 119051

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


INA  2005-01-19 23:22:20  No: 119052

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

! が余分では?

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


poi  2005-01-19 23:22:30  No: 119053

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

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


魔界の仮面弁士  2005-01-19 23:25:37  No: 119054

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

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

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


poi  2005-01-19 23:46:53  No: 119055

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加