カテゴリ: VB.NET 更新日: 2026/03/01

VB.NETで文字列が空か判定する方法!IsNullOrEmptyとIsNullOrWhiteSpace

VB.NETで文字列がNullまたは空かを判定する方法(IsNullOrEmpty, IsNullOrWhiteSpace)
VB.NETで文字列がNullまたは空かを判定する方法(IsNullOrEmpty, IsNullOrWhiteSpace)

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

生徒

「ユーザーが文字を入力しなかったときに、エラーを表示させたいんです。どうやって文字が空っぽかどうかを調べればいいですか?」

先生

「VB.NETには、文字列が空かどうかを賢く判定する専用の命令があります。IsNullOrEmpty(イズ・ヌル・オア・エンプティ)などを使うのが一般的ですよ。」

生徒

「名前が長いですね…!普通にイコール(=)で比べるのと何が違うんですか?」

先生

「実はプログラミングには『文字が全く無い状態』と『中身が未設定の状態』の二種類があるんです。詳しく解説していきますね!」

1. 文字列の「空」には二つの状態がある?

1. 文字列の「空」には二つの状態がある?
1. 文字列の「空」には二つの状態がある?

プログラミング未経験の方が最初に戸惑うのが、Null(ヌル)空文字(からもじ)の違いです。VB.NET(ヴィジュアルベーシック・ドットネット)で文字列を扱う際、パソコンはこの二つを明確に区別しています。

例え話で説明しましょう。あなたの机の上に「名前を書くための箱」があるとします。

  • 空文字(""):箱は用意されているけれど、中身が空っぽの状態。
  • Null(Nothing):そもそも箱自体が机の上に置かれていない、存在しない状態。

このどちらの状態であっても「名前が入力されていない」ことには変わりありません。これらをまとめて「文字が入っていないよ!」と判定するために、VB.NETでは便利な道具が用意されているのです。

2. IsNullOrEmptyメソッドの基本的な使い方

2. IsNullOrEmptyメソッドの基本的な使い方
2. IsNullOrEmptyメソッドの基本的な使い方

まず最初に覚えるべきなのが、String.IsNullOrEmpty(ストリング・イズ・ヌル・オア・エンプティ)です。これは「Null(Nothing)か、あるいは空文字("")か」を同時にチェックしてくれる非常に便利な命令です。

もしこれを手作業で判定しようとすると、「もし中身がNothingなら…、あるいはもし中身が空っぽなら…」と二回も書かなければならず、コードが長くなってしまいます。このメソッドを使うことで、スッキリと短いプログラムを書くことができます。


Dim inputName As String = ""

' 文字列がNullか空文字かを判定します
If String.IsNullOrEmpty(inputName) Then
    Console.WriteLine("名前が入力されていません。")
Else
    Console.WriteLine("こんにちは、" & inputName & "さん!")
End If

実行結果は以下のようになります。


名前が入力されていません。

3. 空白スペースも「空」とみなすIsNullOrWhiteSpace

3. 空白スペースも「空」とみなすIsNullOrWhiteSpace
3. 空白スペースも「空」とみなすIsNullOrWhiteSpace

実際のプログラム運用でよく困るのが、ユーザーが「スペース(空白)」だけを入力して送信ボタンを押すケースです。先ほどのIsNullOrEmptyは、「スペースが入っている」=「文字が入っている」と判断してしまいます。しかし、名前が「  」さんでは困りますよね。

そこで登場するのが、String.IsNullOrWhiteSpace(ストリング・イズ・ヌル・オア・ホワイトスペース)です。これはNullや空文字だけでなく、半角スペースや全角スペース、改行コードなど「目に見えない空白文字」だけの場合も「空っぽ」として扱ってくれます。


Dim memo As String = "    " ' 全角・半角スペースのみ

' 空白文字だけでも「空」と判定してくれる便利な命令
If String.IsNullOrWhiteSpace(memo) Then
    Console.WriteLine("メモの内容が有効ではありません。")
End If

実行結果は以下のようになります。


メモの内容が有効ではありません。

パソコンを触ったことがない人が入力するデータは、意外と無意識にスペースが混ざってしまうものです。この命令を使うことで、より正確な入力チェック(バリデーション)が可能になります。

4. Notを使って「文字がある時」を判定する

4. Notを使って「文字がある時」を判定する
4. Notを使って「文字がある時」を判定する

これまでは「空の時」に処理を行ってきましたが、逆に「文字がしっかり入力されている時だけ」何かをしたい場合も多いです。その時は、条件の前に Not(ノット) を付けます。

Notは「〜ではない」という意味になります。つまり「Nullまたは空ではない」=「何か文字が入っている」という条件になります。これも非常によく使うパターンなので、書き方に慣れておきましょう。


Dim address As String = "東京都千代田区"

' 文字列が空ではない(何か入っている)場合を判定
If Not String.IsNullOrEmpty(address) Then
    Console.WriteLine("住所を確認しました:" & address)
End If

実行結果は以下のようになります。


住所を確認しました:東京都千代田区

5. 実際のアプリ開発での使い分けポイント

5. 実際のアプリ開発での使い分けポイント
5. 実際のアプリ開発での使い分けポイント

IsNullOrEmptyとIsNullOrWhiteSpace、どちらを使うべきか迷うかもしれません。基本的にはIsNullOrWhiteSpace(ホワイトスペース版)を使う方が安全です。

例えば、パスワードの設定や、会員登録の名前入力など、意味のある文字を入力してほしい場所では、スペースだけの入力を許可すべきではありません。最新のVB.NET開発現場では、このホワイトスペース版を使って厳密にチェックするのが主流になっています。

ただし、CSVデータの解析など、スペースそのものが意味を持つデータ(固定長データなど)を扱う場合だけは、IsNullOrEmptyを使って、スペースを消さないように注意する必要があります。状況に合わせて使い分けるのがプロのコツです。

6. 長さを数えるLengthプロパティとの違い

6. 長さを数えるLengthプロパティとの違い
6. 長さを数えるLengthプロパティとの違い

文字が空かどうかを調べるために「文字の長さを数える」という方法(Lengthプロパティ)を使う人もいます。例えば「もし長さが0なら空っぽだね」と判断する方法です。

しかし、この方法は危険です。もし変数がNull(Nothing)だった場合、長さを数えようとした瞬間にパソコンが「存在しないものの長さは測れません!」とパニックを起こし、プログラムが強制終了してしまいます(エラー)。今回学んだ専用のメソッドを使えば、内部で自動的にNullチェックをしてくれるので、絶対に止まらない安全なプログラムを作ることができます。


Dim userData As String = Nothing

' 安全な方法
If String.IsNullOrEmpty(userData) Then
    Console.WriteLine("安全に判定できました。")
End If

' 危険な方法(Nothingだとエラーになります)
' If userData.Length = 0 Then
'     Console.WriteLine("ここは実行される前にプログラムが止まります。")
' End If

実行結果は以下のようになります。


安全に判定できました。

7. 判定方法をマスターしてエラーを防ごう

7. 判定方法をマスターしてエラーを防ごう
7. 判定方法をマスターしてエラーを防ごう

文字列の判定は、プログラムの不具合(バグ)を防ぐための「防波堤」のような役割を果たします。特にデータベースに値を保存したり、ファイルを操作したりする前に「データが正しいか」を確認することは、プログラミングにおいて最も大切な習慣の一つです。

VB.NETは初心者にも非常に優しい言語ですが、このNullや空文字の扱いをしっかり理解することで、初心者から一歩抜け出した「壊れにくいプログラム」が書けるようになります。まずは自分の書いたプログラムの入力部分に String.IsNullOrWhiteSpace を取り入れてみてください。ユーザーがどんな変な入力をしても動じない、頼もしいアプリへの第一歩となります。

カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETで文字列が空か判定する方法!IsNullOrEmptyとIsNullOrWhiteSpace
New2
ASP.NET
ASP.NETのasync/awaitを完全ガイド!初心者でもわかる非同期処理の基本
New3
VB.NET
VB.NETで文字列の比較を完全マスター!EqualsとCompareの使い方
New4
ASP.NET
ASP.NETの非同期処理とは?なぜ必要なのかを初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのJoinメソッドを徹底解説!バラバラの文字列を一つに結合する方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで正規表現をマスター!初心者でもわかる文字列検索・抽出の基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.6
Java&Spring記事人気No6
ASP.NET
ASP.NET Coreで学ぶAPIルーティングの仕組み完全ガイド!初心者でもわかるURLの流れ
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.8
Java&Spring記事人気No8
ASP.NET
ASP.NET MVCのフォーム送信とPOSTデータの受け取り方を完全解説!初心者でもわかる入力処理の基本