カテゴリ: VB.NET 更新日: 2025/10/20

VB.NETのNullable型を徹底解説!初心者でもわかる使い方と注意点

VB.NETでNullable型を使う方法と注意点
VB.NETでNullable型を使う方法と注意点

先生と生徒の会話形式で理解しよう

生徒

「先生、VB.NETで変数に何も入れない状態ってどうやって表すんですか?」

先生

「良い質問ですね。普通の変数は必ず値を持ちますが、VB.NETにはNullable型という仕組みがあって『値がない』という状態を表現できるんです。」

生徒

「えっ!じゃあ整数とか日付とかにも『値なし』ができるんですか?」

先生

「その通り。今日はNullable型の使い方と注意点を見ていきましょう。」

1. Nullable型とは?

1. Nullable型とは?
1. Nullable型とは?

VB.NETのNullable型とは、「通常は値を必ず持つデータ型」に「値が存在しない状態(Nothing)」を追加できる特別な型のことです。特にデータベースから値を取り出すときや、入力がまだ行われていないときなどに役立ちます。

例えば、数値型(Integer)は通常0や10などの数値を必ず入れる必要があります。しかし、現実のデータには「まだ入力されていない」や「不明」という状態があります。そんなときに使えるのがNullable型です。

Nullable型は?を使って簡単に宣言できます。

2. Nullable型の基本的な使い方

2. Nullable型の基本的な使い方
2. Nullable型の基本的な使い方

それでは具体的にコードで見てみましょう。


Dim age As Integer? ' Nullable型の整数
age = Nothing       ' 値がまだ存在しない
Console.WriteLine(age.HasValue) ' False

age = 25            ' 値を代入
Console.WriteLine(age.HasValue) ' True
Console.WriteLine(age.Value)    ' 25

HasValueプロパティを使うと、値が入っているかどうかを調べることができます。そして値を取り出すときはValueプロパティを使います。

3. NothingとNullable型の違い

3. NothingとNullable型の違い
3. NothingとNullable型の違い

VB.NETではNothingというキーワードがありますが、これは「参照型」や「Nullable型」で特別な意味を持ちます。

  • 普通の数値型:必ず値を持つ(Nothingを代入すると0になる)
  • Nullable型:Nothingを代入すると「値がない」という状態になる

つまり、普通の整数型IntegerにNothingを入れると「0」になりますが、Integer?にNothingを入れると「値なし」となり、HasValueでFalseになります。

4. Null合体演算子(If演算子)

4. Null合体演算子(If演算子)
4. Null合体演算子(If演算子)

Nullable型は便利ですが、値が入っていないとエラーになることがあります。そこで役立つのがNull合体演算子If演算子)です。これは「値があればその値を、なければ別の値を使う」という仕組みです。


Dim height As Integer? = Nothing
Dim displayHeight As Integer

' 値がなければデフォルトで170を使う
displayHeight = If(height, 170)

Console.WriteLine(displayHeight) ' 出力: 170

このように書くことで、値が存在しないときの安全な代替値を指定できます。

5. Nullable型を使うと便利な場面

5. Nullable型を使うと便利な場面
5. Nullable型を使うと便利な場面

Nullable型は実際にどのような場面で使われるのでしょうか?代表的な例を挙げてみましょう。

  • データベースの値がNULLの場合 ユーザーの年齢や身長が未入力の場合にそのまま扱える。
  • フォーム入力が任意のとき 数値の入力欄が空の場合に「値なし」として処理できる。
  • 計算で一時的に値が未確定のとき 途中でまだ決まっていない数値を表現するのに使える。

6. Nullable型の注意点

6. Nullable型の注意点
6. Nullable型の注意点

Nullable型は便利ですが、使うときにはいくつかの注意が必要です。

  • Valueを直接使うとエラーになることがある 値がない状態でValueを呼び出すと実行時エラーになります。
  • 演算に使うときは確認が必要 Nullのまま計算すると結果もNullになるため、事前にHasValueを確認するか、If演算子でデフォルト値を設定しましょう。
  • 参照型には不要 Stringなどの参照型はもともとNothingを持てるため、Nullable型にする必要はありません。

7. Nullable型を使ったサンプルプログラム

7. Nullable型を使ったサンプルプログラム
7. Nullable型を使ったサンプルプログラム

最後に、Nullable型を使った簡単なサンプルプログラムを紹介します。


Dim weight As Integer? = Nothing

If weight.HasValue Then
    Console.WriteLine("体重は " & weight.Value & " kg です")
Else
    Console.WriteLine("体重は未入力です")
End If

' Null合体演算子でデフォルト値を使う
Dim displayWeight As Integer = If(weight, 60)
Console.WriteLine("表示用体重: " & displayWeight & " kg")

体重は未入力です
表示用体重: 60 kg

このようにNullable型を使えば、現実の「値がまだ存在しない」状態をプログラムで自然に表現できます。

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETの例外処理でよくあるアンチパターンと注意点を初心者向けに徹底解説
New2
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New3
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New4
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.6
Java&Spring記事人気No6
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介