.NET開発者のためのブログメディア
VB.NETのEnumの使い方は?基礎だけでなく応用テクも解説!

「VB.NETのEnumって、どんな時に使うんだろう……」
「VB.NETのEnumの基礎的な使い方や、具体的なサンプルコードが知りたいな……」
と思っていませんか?
Enumは、使いこなすととても便利な列挙型のクラスです。ただ初めて使う場合、具体的な使い方がイメージしづらいと感じる人も多いのではないでしょうか。
そこで今回は、VB.NETの基礎的なEnumの使い方・応用テクニックについて解説します。
- PG
- VB.NETのEnumを詳しく知りたいです。
- SE
- 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の値」を入れています。
- PG
- これだと「January」しか値の指定がないけど、大丈夫ですか?
- SE
- 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ってどのタイミングで使えばいいの?
- PG
- Enumの使い方はなんとなくわかったけど、使いどころがよくわからないなぁ...。
- SE
- 最初はわかりづらいよね。ここからは、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を使ってみてくださいね!
Search キーワード検索
Popular 人気の記事
reccomended おすすめ記事
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)