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

VB.NETのエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ

VB.NETのエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ
VB.NETのエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ

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

生徒

「VB.NETを勉強していたらエラーがいっぱい出てきて困りました…。どうやって直せばいいんですか?」

先生

「エラーはプログラミングをする上で必ず出てくるものですよ。VB.NETでは大きく分けて『エラー』と『例外』があります。それぞれ意味と対処法を理解すると安心できますよ。」

生徒

「エラーと例外って何が違うんですか?」

先生

「それでは、VB.NETでよく出会うエラーの種類と、その直し方を順番に見ていきましょう!」

1. エラーとは?例外とは?

1. エラーとは?例外とは?
1. エラーとは?例外とは?

VB.NETを学び始めると、まずぶつかりやすいのが「エラー」です。エラーとは、プログラムが思った通りに動かなくなる原因となる“間違い”のことを指します。エラーと聞くと難しく感じますが、実は種類を理解しておくと落ち着いて対処できるようになります。

  • コンパイルエラー:プログラムを実行する前に検出されるエラー。文法の誤りやキーワードの書き間違いなど、比較的見つけやすいタイプです。
  • 実行時エラー(例外):プログラムが実際に動いている最中に発生するエラー。正しく書かれていても、処理内容や状況によって発生します。

たとえば、国語テストで漢字の書き間違いがあれば、提出前に先生から「ここは違うよ」と直されますよね。これがコンパイルエラーです。一方、テスト自体は提出できたものの、答えが間違っていて点数が減るのが実行時エラーのイメージです。

以下は、コンパイルエラーと実行時エラーの違いを直感的に理解できる簡単な例です。


' コンパイルエラーの例(スペルミス)
Console.Writeline("こんにちは")  ' 正しくは WriteLine

' 実行時エラーの例(ゼロで割る)
Dim x As Integer = 10
Dim y As Integer = 0
Console.WriteLine(x / y)  ' 実行すると例外が発生

このように、エラーの種類と発生するタイミングを知っておくだけで、VB.NETの学習がぐっと理解しやすくなります。

2. コンパイルエラーの例と対処法

2. コンパイルエラーの例と対処法
2. コンパイルエラーの例と対処法

コンパイルエラーは、VB.NETのプログラムを「実行する前」に発見されるエラーです。コンピュータがコードを機械語に変換(コンパイル)するときに、「この書き方はVB.NETのルールに合っていないよ」と教えてくれます。Visual Studioなどの開発環境では、間違っている場所に赤い波線が表示されたり、「エラー一覧」に詳しいメッセージが表示されたりするので、落ち着いて確認すれば必ず直せます。

ここでは、VB.NETの初心者が特によく出会うコンパイルエラーを、簡単なサンプルプログラムと一緒に見ていきます。実際にエラーを出してみて、「なぜエラーになるのか」「どう直せばよいのか」をセットで理解しておくと、今後エラーが出ても焦らずに対処できるようになります。

2-1. スペルミス(キーワードやメソッド名の書き間違い)


' スペルミスの例
Dim mesage As String
mesage = "こんにちは"
Console.WriteLin(mesage)

上のコードでは、変数名mesageは自分で決めた名前なので問題ありませんが、WriteLinという部分がVB.NETの正しいメソッド名ではないため、コンパイルエラーになります。本来はWriteLineと書く必要があります。Visual StudioではWriteLinの部分に赤い波線が付き、「'WriteLin' は宣言されていません」などのエラーメッセージが表示されます。

スペルミスを直した正しい例は次のとおりです。


' スペルミスを修正した例
Dim message As String
message = "こんにちは"
Console.WriteLine(message)

コンパイルエラーが出たときは、以下の順番で確認するとスムーズです。

  • 赤い波線が付いている場所を探す
  • 画面下部の「エラー一覧」でエラーメッセージを読む
  • メソッド名(WriteLineなど)やキーワード(DimStringなど)のスペルを公式の名前と見比べる

特に、英単語を略して覚えてしまうと綴りを間違えやすいので、VB.NETのキーワードやメソッド名は「正しいつづりで記憶しておく」ことがコンパイルエラーを減らすポイントです。

2-2. 宣言していない変数を使った


' 宣言していない変数を使った例
Console.WriteLine(name)

このコードでは、nameという変数をどこにも宣言していないのに、いきなりConsole.WriteLineで使おうとしているため、コンパイルエラーになります。VB.NETでは、「この変数はこういう種類の値を入れます」と先に宣言してから使うのが基本ルールです。

正しく宣言してから使う例は次のようになります。


' 正しく変数を宣言してから使う例
Dim name As String
name = "太郎"
Console.WriteLine(name)

Dim name As Stringのように書くことで、「name という名前の箱を用意して、中身は文字列(String)ですよ」とVB.NETに伝えています。変数を宣言してから使う習慣をつけておくと、「宣言されていません」というコンパイルエラーはぐっと減ります。

2-3. 型が合っていない(型不一致のコンパイルエラー)


' 型が合っていない例
Dim age As Integer
age = "二十歳"

Integer型は数字を入れるための変数なのに、「二十歳」という文字列を代入しようとしているため、コンパイル時にエラーになります。VB.NETでは、整数には整数、文字列には文字列というように、「どの型の変数にどんな値を入れるか」が厳密にチェックされるためです。

この場合は、次のように用途に合わせて型を揃えることでコンパイルエラーを解消できます。


' 正しい型を使った例
Dim age As Integer
age = 20

Dim ageText As String
ageText = "二十歳"

コンパイルエラーは、VB.NETのコンパイラが「このまま実行すると危ないよ」「ルールに合っていないよ」と先回りして教えてくれているサインです。最初は怖く感じるかもしれませんが、エラーメッセージと赤い波線をヒントに、スペル・宣言・型の3つを順番に見直す癖をつけると、VB.NETのエラー修正がぐっと楽になります。

3. 実行時エラー(例外)の例と対処法

3. 実行時エラー(例外)の例と対処法
3. 実行時エラー(例外)の例と対処法

実行時エラーは、プログラムを「実行しているとき」に発生するエラーです。前の章で見たコンパイルエラーは、実行前のチェックで見つかりましたが、実行時エラーは一度プログラムが動き始めてから、実際のデータや計算結果によって起こります。コードの書き方が正しくても、値の組み合わせや処理の順番によってエラーになることがあるため、VB.NETの学習では特につまずきやすいポイントです。

VB.NETでは、実行時エラーが起きると「例外(Exception)」という形でエラーメッセージが表示されます。画面には「どんな種類の例外か(例:DivideByZeroException)」と「どの行で発生したか」が出るので、まずは慌てずにメッセージをよく読むことが大切です。ここでは、初心者が特に出会いやすい代表的な実行時エラーを、簡単なVB.NETのサンプルコードと一緒に見ていきましょう。

3-1. ゼロ除算エラー


' ゼロで割ってしまう例(DivideByZeroException)
Dim a As Integer = 10
Dim b As Integer = 0
Dim result As Integer = a / b
Console.WriteLine(result)

中学校の数学で習うように、「0で割る」という計算は数学的に定義できません。そのため、上のVB.NETコードを実行すると、コンパイルは通るのに、実行した瞬間に「DivideByZeroException(ゼロ除算例外)」という実行時エラーが出ます。見た目は正しい割り算に見えるので、初心者は「なぜエラーなの?」と戸惑いやすい箇所です。

このようなゼロ除算エラーを防ぐには、割り算を行う前に「割る数が0かどうか」をチェックするのが基本です。VB.NETの実際の画面では、エラーメッセージに例外の種類と発生した行番号が表示されるので、「どの計算で0が使われているのか」をメッセージとコードを見比べながら確認すると原因を特定しやすくなります。

3-2. 配列の範囲外アクセス


' 配列の範囲外にアクセスしてしまう例(IndexOutOfRangeException)
Dim numbers() As Integer = {1, 2, 3}
Console.WriteLine(numbers(5))

配列は「同じ種類の値を並べて入れておくための箱」のようなものです。VB.NETの配列では、最初の要素は0番目、次が1番目…というように、0から順番に並んでいます。上の例では{1, 2, 3}の3つしか要素がないのに、存在しないnumbers(5)を取り出そうとしているため、「IndexOutOfRangeException(インデックスが範囲外です)」という実行時エラーになります。

配列の実行時エラーを防ぐコツは、「今アクセスしようとしている番号が、配列の長さの範囲内か」を意識することです。要素数が3なら、アクセスできるのは02までです。VB.NETではnumbers.Lengthで配列の長さを取得できるので、「0以上、Length未満の番号だけを使う」という習慣をつけておくと、配列の範囲外アクセスによる実行時エラーを減らせます。

4. Try-Catch文でエラーを処理する

4. Try-Catch文でエラーを処理する
4. Try-Catch文でエラーを処理する

実行時エラーは「例外処理(れいがいしょり)」という方法で安全に対応できます。VB.NETではTry-Catch文を使います。


Try
    Dim a As Integer = 10
    Dim b As Integer = 0
    Dim result As Integer = a / b
    Console.WriteLine(result)
Catch ex As Exception
    Console.WriteLine("エラーが発生しました: " & ex.Message)
End Try

このように書いておくと、もしエラーが出てもプログラムが強制終了せずにメッセージを表示してくれるので安心です。

5. 初心者がよく出会うエラー一覧

5. 初心者がよく出会うエラー一覧
5. 初心者がよく出会うエラー一覧

VB.NETの初心者がつまずきやすいエラーを表にまとめました。

エラーの種類 内容 対処法
コンパイルエラー 文法の間違いやスペルミス エラーメッセージを読み直し、正しい文法に修正する
ゼロ除算 0で割り算しようとした 割る数が0でないかチェックする
配列の範囲外 存在しない要素にアクセス 配列の長さを確認して範囲内にする
Null参照 何も入っていないオブジェクトを使った 変数に正しい値を代入してから使う

まとめ

まとめ
まとめ

VB.NETを学び始めると、最初に大きな壁のように立ちはだかるのがエラーと例外です。たくさん赤い波線が出てきたり、実行中に見慣れないメッセージが表示されたりすると、不安になってしまいますが、実はエラーや例外はプログラミングに欠かせない大切な知らせでもあります。コンパイルエラーは「文法の間違いを教えてくれる先生」のような存在であり、実行時エラーや例外は「処理の途中で起きた危険を教えてくれる警報装置」のような役割を持っています。VB.NETのエラー表示を落ち着いて読み解く習慣を身につけることで、少しずつプログラムの品質も理解力も高まっていきます。

コンパイルエラーは、コードを書き終えて実行する前の段階で発見される間違いでした。キーワードのスペルミス、宣言していない変数の使用、かっこの閉じ忘れなど、基本的なルールから外れている部分を教えてくれるものです。Visual Studioでは該当箇所に赤い波線が表示され、エラーメッセージの一覧も確認できます。初心者のうちは、赤い波線が出たら焦らずにメッセージをクリックし、「どの行の何が間違っているのか」を一つずつ確認する習慣をつけると良いでしょう。エラーの文章が難しく感じる場合でも、キーワードや行番号に注目するとヒントが見つかります。

一方、実行時エラーや例外は、プログラムがある程度正しく書けていても、動かしてみてはじめて分かる問題です。ゼロで割り算をしようとしたり、配列の範囲外を参照してしまったり、値が入っていないオブジェクトにアクセスしてしまったりと、処理の流れやデータの状態に関わる間違いが原因になることが多いです。これらは単なる文法ミスではなく、ロジックや設計に関わることも多いため、エラーメッセージと実際のコードの流れを照らし合わせながら原因を探っていく力が求められます。初心者のうちは、「どの行で例外が発生したのか」「どんな種類の例外なのか」をよく確認することが第一歩です。

実行時エラーへの対処として重要なのが、VB.NETのTry-Catch構文でした。危険がある処理をTryブロックの中に書き、何か問題が起きたときにCatchブロックでメッセージを表示したり、代替の処理を行ったりできます。これにより、プログラム全体が突然終了してしまうのを防ぎ、ユーザーに分かりやすい案内を表示することができます。特に、ユーザーから入力を受け取る画面や、ファイル、ネットワークなど不確実な要素を扱う処理では、例外処理をきちんと書いておくことが安心につながります。

初心者がVB.NETでエラーや例外に向き合うときに大切なのは、「エラーは悪いものだから消したい」という意識ではなく、「プログラムを良くするためのヒントが詰まっている」という前向きな意識を持つことです。同じ種類のエラーを何度も経験するうちに「このパターンはあの時と同じだな」と感じられるようになり、自分なりの対処法やチェックのコツが身についていきます。スペルミスや宣言忘れを見つける力、ゼロ除算や配列の範囲外を事前に防ぐための条件分岐など、少しずつ工夫を積み重ねることで、エラーに強いコードを書けるようになります。

エラーと例外を意識したサンプルコード

ここでは、単純な割り算と配列アクセスに対して例外処理を行うVB.NETのコード例をまとめておきます。


Module ErrorSample
    Sub Main()
        Try
            Console.WriteLine("割り算用の数値を入力してください:")
            Dim a As Integer = Integer.Parse(Console.ReadLine())
            Console.WriteLine("割る数を入力してください:")
            Dim b As Integer = Integer.Parse(Console.ReadLine())

            Dim result As Integer = a / b
            Console.WriteLine("結果は " & result & " です。")

            Dim numbers() As Integer = {10, 20, 30}
            Console.WriteLine("配列の何番目を表示しますか?0~2で入力してください:")
            Dim index As Integer = Integer.Parse(Console.ReadLine())

            Console.WriteLine("選択された値は " & numbers(index) & " です。")
        Catch ex As DivideByZeroException
            Console.WriteLine("0で割ることはできません。別の数値を試してください。")
        Catch ex As IndexOutOfRangeException
            Console.WriteLine("配列の範囲外を指定しました。指定できる範囲を確認してください。")
        Catch ex As FormatException
            Console.WriteLine("数値として認識できない入力がありました。半角数字で入力してください。")
        Catch ex As Exception
            Console.WriteLine("想定外のエラーが発生しました:" & ex.Message)
        End Try

        Console.WriteLine("処理を終了するにはEnterキーを押してください。")
        Console.ReadLine()
    End Sub
End Module

このサンプルでは、割り算、配列の参照、数値への変換という、初心者がつまずきやすいポイントをまとめて扱っています。DivideByZeroException、IndexOutOfRangeException、FormatExceptionといった代表的な例外を個別にCatchしているため、どのようなエラーが発生したのかを利用者に分かりやすく伝えられます。また、最後に汎用的なExceptionも受け取るようにしておくことで、予想していない問題にもメッセージを表示できます。実際の開発でも、このように状況に応じた案内を用意しておくことで、使いやすく信頼性の高いアプリケーションに近づいていきます。

先生と生徒の振り返り会話

生徒

「今まではエラーが出るたびに怖くなっていたんですけど、種類ごとに意味があるって分かったら少し安心しました。」

先生

「そうですね。コンパイルエラーは文法の間違いを教えてくれる案内役、実行時エラーや例外は処理中の危険を知らせてくれる見張り役のようなものだと考えると分かりやすいですよ。」

生徒

「ゼロで割ったり配列の範囲を間違えたりするのは、自分でもよくやってしまいそうだなと思いました。Try-Catchでちゃんと受け止める書き方を覚えておけば安心ですね。」

先生

「その意識はとても大切です。よく起こりそうな問題には、あらかじめ例外処理を書いておくと、ユーザーにも分かりやすくなりますし、自分でデバッグするときにもヒントが増えます。」

生徒

「これからエラーメッセージが出ても、すぐに閉じたりせずに、どの行で何が起きているのかを落ち着いて読むようにします。少しずつ慣れていけば、VB.NETのエラーも味方にできそうですね。」

先生

「その通りです。エラーは成長のきっかけですから、失敗を恐れずたくさん試してみてくださいね。」

関連記事:
カテゴリの一覧へ
新着記事
New1
VB.NET
VB.NETの変数とは?初心者向けに定義方法とよく使うデータ型を解説
New2
ASP.NET
ASP.NET MVCでモデルを定義してデータを扱う方法を初心者向けに解説
New3
ASP.NET
ASP.NETのマイグレーションを使ったスキーマ管理方法を完全解説!初心者でも安心
New4
ASP.NET
MacでASP.NET開発を始める方法|初心者向けにVisual Studioと.NET SDKを解説
人気記事
No.1
Java&Spring記事人気No1
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を加算・減算する方法を完全ガイド!AddDaysやAddMonthsの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.7
Java&Spring記事人気No7
VB.NET
VB.NETで日付と時間を比較・計算する方法!CompareとSubtractを完全解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順