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

VB.NETで定数を定義する方法!ConstとReadOnlyの違いを初心者向けに徹底解説

VB.NETで定数を定義する方法!ConstとReadOnlyの違いを理解しよう
VB.NETで定数を定義する方法!ConstとReadOnlyの違いを理解しよう

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

生徒

「VB.NETで数字や文字をずっと変わらない値として使いたいんですが、どうすればいいですか?」

先生

「それには“定数”という仕組みを使います。VB.NETではConstReadOnlyの2つの方法があります。」

生徒

「ConstとReadOnlyってどちらも定数ってことですか?」

先生

「名前は似ていますが、少し違いがあります。順番にわかりやすく解説していきましょう。」

1. 定数(Const・ReadOnly)とは?

1. 定数(Const・ReadOnly)とは?
1. 定数(Const・ReadOnly)とは?

VB.NETでいう定数とは、「絶対に変えてはいけない値」を名前を付けて保存しておく仕組みです。プログラムの途中で値が変わらないため、どこから読んでも意味が分かりやすくなります。例えば買い物のアプリを作るときに、毎回「0.1」や「3.14159」と数字だけ書くよりも、名前を付けておく方がミスを防げます。

実際にどれくらい便利か、簡単な例を見てみましょう。


' 定数がない場合
Dim price As Integer = 1000
Dim tax As Double = price * 0.1

' 定数を使う場合
Const 消費税率 As Double = 0.1
Dim price2 As Integer = 1000
Dim tax2 As Double = price2 * 消費税率

下の書き方のほうが「何の0.1なのか」が一目で分かりますよね。定数を使うとプログラムの意味が伝わりやすく、あとで読み返しても迷いません。

定数を使うメリットは次の通りです。

  • プログラムの読みやすさが上がる
  • 数字や文字をうっかり変更してしまうのを防げる
  • 値を変更したいときも1か所直すだけで済む

そしてVB.NETでは、定数を作る方法が2つ用意されています。それがConstReadOnlyです。同じ「変わらない値」でも、使い道や考え方に少し違いがあります。

2. Constとは?

2. Constとは?
2. Constとは?

Constは「書いた瞬間に値が決まる定数」です。プログラムを実行している途中で変えることは絶対にできません。「絶対に変えてはいけない数字」や「固定の文字」を使うときに便利で、ミスを防ぎながらコードを読みやすくできます。

例えば次のように使います。


Const 消費税率 As Double = 0.1
Const 円周率 As Double = 3.14159
Const アプリ名 As String = "サンプル電卓"

どれも途中で書き換えることはできません。数字だけでは意味が分かりにくい場面でも、名前を付けておくことで「これは何の数字なのか」が一目で分かります。

実際にプログラムの中で使う例を見てみましょう。


Const 消費税率 As Double = 0.1
Dim 金額 As Integer = 1000

' 税込みを計算
Dim 税込価格 As Double = 金額 * (1 + 消費税率)

Console.WriteLine("税込価格は " & 税込価格 & " 円です")

税込価格は 1100 円です

毎回「0.1」と書かずに済むため、値を変更したい時もConst 消費税率の1行を変更するだけで全体に反映できます。こうした点から、Constは「変える必要のない値」を扱うときにとても役立つ仕組みです。

3. ReadOnlyとは?

3. ReadOnlyとは?
3. ReadOnlyとは?

ReadOnlyは「読み取り専用の変数」です。Constと違い、値をプログラムの実行時に決めることができます。ただし、一度値を代入したら変更はできません。

例えば次のように書きます。


ReadOnly 開始日時 As DateTime = DateTime.Now

この場合、プログラムを実行した瞬間の日時が開始日時に入ります。Constでは「実行時の値」を入れることはできないので、このような場面ではReadOnlyを使います。

クラスの中でもよく使われます。例えば次のように書けます。


Class サンプル
    Public ReadOnly 作成日時 As DateTime

    Public Sub New()
        作成日時 = DateTime.Now
    End Sub
End Class

これにより、オブジェクトを作った時点の日時を保存でき、後から勝手に変更されることはありません。

4. ConstとReadOnlyの違い

4. ConstとReadOnlyの違い
4. ConstとReadOnlyの違い

ここで一度、ConstReadOnlyの違いを整理してみましょう。

特徴 Const ReadOnly
値を決めるタイミング プログラムを書いたとき(コンパイル時) プログラムが動いたとき(実行時)
再代入 できない できない(ただし初期化時のみ代入可能)
主な用途 円周率・税率・固定の文字列など 日時・ランダムなID・外部から渡される値など

つまり「プログラムを書くときにもう決まっている値」ならConst、「実行してみないとわからないけど変更してほしくない値」ならReadOnlyを選ぶと覚えると分かりやすいです。

5. 実生活で例えると?

5. 実生活で例えると?
5. 実生活で例えると?

イメージしやすいように、実生活の例で考えてみましょう。

  • Constは「歴史の事実」… 例えば「1年は365日」という事実は変わりません。
  • ReadOnlyは「日記に書いた日付」… その日付は一度書いたら変えられませんが、書くときに決まります。

このように考えると違いがぐっと理解しやすくなります。

6. 初心者が気をつけるポイント

6. 初心者が気をつけるポイント
6. 初心者が気をつけるポイント

最後にVB.NET初心者がよくつまずくポイントをまとめます。

  • Constには数値や文字列のような「決まった値」しか代入できない
  • ReadOnlyはクラスやモジュールの中で使うことが多い
  • 「ConstなのかReadOnlyなのか」でエラーが出たら「値が実行時に決まるものかどうか」を考えると解決しやすい

最初は混乱するかもしれませんが、実際に使いながら覚えていくのがおすすめです。

まとめ

まとめ
まとめ

VB.NETで定数を使うと、プログラムが分かりやすくなり、予期しない変更やミスを防ぐことができます。特に「よく使う値」や「変わると困る情報」を定数にまとめておくと、後からコードを見返したときにも迷いません。今回紹介したConstReadOnlyは、どちらも「変更できない値」を扱いますが、決まるタイミングが違うという部分が重要なポイントでした。

例えば、消費税率や円周率のように「最初から決まっている値」はConstが向いています。一方で、プログラムを実行したときに決まる値、たとえば現在の日時や外部から受け取った値などはReadOnlyのほうが活躍します。同じ「変わらない値」でも、状況で使い分けると、より安全で読みやすいコードになるのがVB.NETの面白いところです。

簡単なサンプルでおさらい


Const アプリ名 As String = "定数サンプル"
ReadOnly 起動時刻 As DateTime = DateTime.Now

Console.WriteLine(アプリ名)
Console.WriteLine("起動した時間: " & 起動時刻)

このように、Constは最初から変わらない名前を持った値を扱い、ReadOnlyは実行したときに決まる情報を扱います。どちらも特別な書き方ではなく、普段のVB.NETのコードに自然に馴染むのも魅力です。最初は難しく感じるかもしれませんが、実際に書いて動かしてみるとすぐに違いが見えてきます。

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

生徒

「ConstとReadOnlyの違い、やっと分かってきました!」

先生

「良かったです。特に“いつ値が決まるか”を意識できると、使い分けがぐっと楽になりますよ。」

生徒

「消費税率みたいに絶対変わらないものはConst、時間みたいに実行してみないと分からないものはReadOnly…で覚えます!」

先生

「その考え方で大丈夫です。VB.NETでは定数をうまく使うとコードがとても読みやすくなるので、少しずつ実践してみましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

VB.NETのConstとReadOnlyはどちらも定数ですが、初心者の自分はどっちを使えばいいですか?

VB.NETのConstとReadOnlyはどちらも「値を変更させないための仕組み」ですが、決めるタイミングが違います。プログラムを書く時点で値が確定しているならConst、実行してみないと決まらない値(現在日時やランダム値など)はReadOnlyを使うのがVB.NETの基本的な使い分けです。初心者はまず「書いた瞬間に決まっている値=Const」「実行時に決まる値=ReadOnly」と覚えると失敗しにくいです。
関連記事:
カテゴリの一覧へ
新着記事
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のIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介