VB.NETのEnumの使い方は?基礎だけでなく応用テクも解説!

「VB.NETのEnumって、どんな時に使うんだろう……」
「VB.NETのEnumの基礎的な使い方や、具体的なサンプルコードが知りたいな……」
と思っていませんか?
Enumは、使いこなすととても便利な列挙型のクラスです。ただ初めて使う場合、具体的な使い方がイメージしづらいと感じる人も多いのではないでしょうか。
そこで今回は、VB.NETの基礎的なEnumの使い方・応用テクニックについて解説します。
- プログラマー
- VB.NETのEnumを詳しく知りたいです。
- システム
エンジニア - VB.NETのEnumは1回覚えると便利なので、ぜひ覚えて使いこなしましょう。
※この記事は、Visual Basicの16.0で動作確認しました。
VB.NETのEnumの使い方は?
Enumは、VB.NETで使える「列挙型のクラス」です。
ただ、「列挙型のクラスって具体的に何?」と思う方も多いでしょう。具体的に言うと、以下のように連続した数値を、一括で扱えるクラスのことです。
Enumの使い方:
1
2
3
4
5
6
7
8
9
|
Public Enum クラス名
要素名1 = 要素名に入れる値1
要素名2 = 要素名に入れる値2
要素名3 = 要素名に入れる値3
.
.
.
要素名n = 要素名に入れる値3
End Enum
|
たとえば、以下のように値を設定して使えます。
Enumのサンプルコード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Public Enum Month
January = 1
February
March
April
May
June
July
August
September
October
November
December
End Enum
|
このサンプルでは、「January ~ December」まで、「1 ~ 12の値」を入れています。
- プログラマー
- これだと「January」しか値の指定がないけど、大丈夫ですか?
- システム
エンジニア - Enumは、設定した値以降、連続した数値が自動付与されるから大丈夫!
Enumの中で指定する要素の値は、0から連続した値が設定されます。ただ、値を1から始めたいときや、指定したいときもありますよね。
その場合は、「要素名 = 要素に入れる値」のように入れると、以降を連続した値に設定できるのです。このことから「列挙型」と呼ばれています。
VB.NETのEnumを使いこなすための3つのサンプルコード
次に、VB.NETのEnumを使ったサンプルコードを解説します。
今回は、以下3つに分けて解説しますね。
1. Enumの要素を指定して値を使う方法
2. Enumの要素数を取得する方法
3. Enumの要素名・値を全て取得する方法
1つずつ詳しく解説します。
1. Enumの要素を指定して値を使う方法
1つ目は、「Enumの要素を指定して値を使う方法」です。
サンプルコードは、以下のとおりです。
サンプルコード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Enum Month
January = 1
February
March
April
May
June
July
August
September
October
November
December
End Enum
Public Class Class1
Shared Sub Main(args As String())
'Enumの宣言
Dim month_list As Month
'EnumにあるJanuary、March、Augustを表示
Console.WriteLine("January:" & month_list.January)
Console.WriteLine("March:" & month_list.March)
Console.WriteLine("August:" & month_list.August)
End Sub
End Class
|
実行結果:
まず、「Dim month_list As Month」で、Enumクラス「Month」の変数「month_list」を用意しています。
次に、「month_list.要素名」を指定することで、Enumクラス「Month」の値を使用しています。このように、Enumに設定した値を簡単に使用できるのです。
2. Enumの要素数を取得する方法
2つ目は、「Enumの要素数を取得する方法」です。
サンプルコードは、以下のとおりです。
サンプルコード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Enum Month
January = 1
February
March
April
May
June
July
August
September
October
November
December
End Enum
Public Class Class1
Shared Sub Main(args As String())
'Enumの要素数の取得
Dim EnumLength As Integer
EnumLength = [Enum].GetValues(GetType(Month)).Length
'EnumにあるJanuary、March、Augustを表示
Console.WriteLine("Eunm「Month」の要素数:" & EnumLength)
End Sub
End Class
|
実行結果:
要素数を取得する方法は、以下です。
1
|
[Enum].GetValues(GetType(Enumのクラス名)).Length
|
要素数があっているか確認するときに便利なので、覚えておきましょう。
3. Enumの要素名・値を全て取得する方法
3つ目は、「Enumの要素名・値を全て取得する方法」です。
・Enumの値をすべて使いたいとき
・Enumの要素名・値を一覧化したいとき
などに便利なので、覚えておきましょう。
サンプルコードは以下のとおりです。
サンプルコード:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Enum Month
January = 1
February
March
April
May
June
July
August
September
October
November
December
End Enum
Public Class Class1
Shared Sub Main(args As String())
'Enumクラス「Month」の要素の数分、「要素名 = 値」を出力
For Each month_list As Month In [Enum].GetValues(GetType(Month))
Dim intValue As Integer = month_list
Dim strElementName As String = month_list.ToString()
Console.WriteLine(strElementName & " = " & intValue)
Next
End Sub
End Class
|
実行結果:
Enumクラス「Month」で設定した要素名、値が出力されていますよね。
「[Enum].GetValues(GetType(Month)」でMonthの要素名・値のデータを取得し、その数分処理がループするようにコードを書いています。
Enumクラス + For Each文でループ処理をするケースはよくあるので、覚えておくと良いでしょう。
VB.NETのEnumってどのタイミングで使えばいいの?
- プログラマー
- Enumの使い方はなんとなくわかったけど、使いどころがよくわからないなぁ...。
- システム
エンジニア - 最初はわかりづらいよね。ここからは、Enumを使うおすすめのタイミングを解説するね!
VB.NETでEnumを使うおすすめのタイミングは、以下2つです。
・連続した数値を1グループでまとめて管理・利用したい時
・数値のみで扱うと使いづらくなってしまう時
基本的には、数値データを1つにまとめて使いたいときに便利です。ただ、他にも複数の数値データを扱う方法はありますよね。
Enumは列挙型の強みを活かし、連続したデータを扱いたいときにおすすめです。
また、「数値のみで扱うと使いづらいケース」にもおすすめです。例えば、以下のようなケースです。
・性別を数値で扱う時
・列名に使う数値を扱う時
性別を数値で扱う時は、「男性」「女性」を「0」「1」のように設定する必要があります。ただ、「0」「1」だけ見ると、判断しにくいです。
それが、以下のように決まっていたらどうでしょうか。
・Man = 0
・Woman = 1
「Enumクラス名.Man」のように指定して値を利用できるため、コードが読みやすくなり、ミスも減ります。
このように、「単純に数値で扱うとわかりづらいとき」は、Enumを使いましょう。
VB.NETでEnumとあわせて覚えておくと便利な「配列」とは?
ここまで、Enumの使い方や使いどころについて解説しました。ただ、「連続した数値」以外にも複数のデータを一括管理したいときはありますよね。
そんな時に便利なのが、「配列」です。数値以外にも、文字列型、日付型、論理型など様々な型で、データを一括管理できます。
具体的な使い方については以下で詳しく解説しているので、ぜひ参考にしてみてくださいね。
>>> 【VB.NET入門】配列の使い方全まとめ!基礎だけでなく応用も
まとめ
今回は、VB.NETのEnumの基礎的な使い方 + 応用テクニックについて解説しました。
Enumは、連続した数値を扱うときにとても便利です。使い方も簡単なので、サンプルを動かして使い方を覚えておきましょう。
また、最後に紹介した配列も覚えるとより開発がしやすくなるので、おすすめです。ぜひ、VB.NETでEnumを使ってみてくださいね!
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


VB.NET新着案件New Job
-
生産管理システムの単体テスト/東京都千代田区/【WEB面談可】/在宅勤務
月給25万~25万円東京都千代田区(東京駅) -
鉄鋼関連・グループ会社システム支援/Oracle/東京都新宿区/【WEB面談可】/在宅勤務
月給26万~26万円東京都新宿区(新宿駅) -
資産運用会社向け残高管理システム運用保守/SQLServer/東京都中央区/【WEB面談可】
月給50万~60万円東京都中央区(銀座駅) -
資産運用会社向け残高管理システム開発のテスター/SQLServer/東京都中央区/【WEB面談可】
月給25万~35万円東京都中央区(銀座駅) -
Web受注システム運用保守/VB.NET/東京都港区/【WEB面談可】
月給50万~60万円東京都港区(品川駅) -
Web受注システム開発のテスター/VB.NET/東京都港区/【WEB面談可】
月給25万~35万円東京都港区(品川駅)