• ベストアンサー

Excel VBAでセル内が"-"の時の判別方法

Excel VBAで質問です。 セル内の値が-のとき、セル内の値をうまく取り出す方法はないでしょうか。 .Cells(a,b)="-"で実行してみたところ、偽になってしまいます。また、Visual Basic Editorで値をチェックすると.Cells(a,b)の値は"?"になってしまっていました。 セル内の値を適当な文字列(AAAなど)に変えて.Cells(a,b)="AAA"にすると真が返ってくるため、これ以外の部分でのバグではないと思います。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

Asc 関数で同じ値が返るかどうか。 MsgBox Asc("-") & "_" & Asc(.Cells(a, b).Value)

salisa
質問者

お礼

セルの値の方は63が返ってきました。 .Cells(a,b)="-" の代わりに Asc(.Cells(a, b).Value)=63 で実行すると真が返ってきたので、この方法を使いたいと思います。 回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.3

#2です う~ん?少々気になるだけど・・・OSのバージョンとExcelのバージョンは? SPまたはSRまでお願いね

salisa
質問者

補足

OSはXPSP3、Excelは2002SP3です。

すると、全ての回答が全文表示されます。
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

> セル内の値が-のとき と、言うのが、数値でマイナスの話? そっちなら、If cells(a,b) < 0 Thenにすればよいと思うけど・・・ 文字なら普通に、引っかかるよ

salisa
質問者

補足

数値ではなく文字です。 先ほどの補足では両方全角になっていますね。notepadやエディタでは半角で表示されたのですが…。 文字コードが原因だったりするのかな? -

すると、全ての回答が全文表示されます。
  • qualheart
  • ベストアンサー率41% (1451/3486)
回答No.1

試してみましたが「-」はちゃんと認識しましたが・・・ もしかしたら全角の「-」になってるとかじゃないですか? ちなみに私が試したのは以下の簡単なVBAです。 If Cells(1, 1) = "-" Then Cells(1, 2).Value = "True" Else Cells(1, 2).Value = "False" End If

salisa
質問者

補足

- "-" セル内、プログラムとも半角になっています。(上の2つはそれぞれからコピーしました)

すると、全ての回答が全文表示されます。

関連するQ&A