• ベストアンサー

Integer変数をカラにしたいのですが

Dim x as Integer x=100 ~~~ 何らかの処理 ~~~ x=Empty と言う感じで一回数値を入れてまたカラにしたいのですが、 Emptyですと0になってしまい、カラにはなりません。 カラにするにはどうしたらいいのでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • Neko4x
  • ベストアンサー率52% (27/51)
回答No.1

Integer型は-32763~32767の範囲の数字が必ず入りますので空にはできません。 String型でしたらNULL(=Empty)にできるのですが。

その他の回答 (3)

回答No.4

たぶん、「数値がセットされたかどうか」を判別したいんですよね。 .NET Framework2.0以降なら、確かにNullableクラスを使うのが 早そうです(初めて知りましたが…汗)。 それ以外にも、.NET系なら、Object型なら何でも設定できるはずなので Object型を使用するのもアリかもしれません。 (但しObject型だと、中身のデータ型が分からなくなりがちだと思うので  お勧めは しかねますが) VB6以前だと、Variant型を使うって手もあります。 (但しこれもObject型と同じ理由で、お勧めは しません。  気分的にもVariantは出来るだけ使いたくないです) 私が良く使う手は、「実データ以外に、データが登録されたかどうかを監視する Boolean型のフラグを使う」手です。 多少面倒には なりますが、これならデータ型が訳分からなくなったりは しません(ちゃんと管理する気があれば、ですが)。 考え方的には、たぶんNullableクラスと同様です。それを自力でやるだけ。

回答No.3

.NET Framework2.0以降であればInteger型とはちょっと違いますが null許容型のNullableってのがあります。 実際のところ、空にしてどうしたいのか記述していただけると どのようなコーディングをすべきなのかが回答者にもわかるのですが。 (0を代入するとか、スコープを狭めるとか、Nullableにするのか)

  • aigaion
  • ベストアンサー率47% (287/608)
回答No.2

Integer 符号付き 32 ビット (4 バイト)の整数ですから空にはなりません. 初期値に戻したいという意味であれば,0が初期値ですよ. Dimで初期化した時の値は初期値を何も入れなければ データ型に与えられている規定値が代入されます. Integerであれば,0ですね.