悩んでる人VB.NETで配列を使いたいけど、宣言の仕方がよく分からない



配列って何種類もあるの?どれを使えばいいんだろう?
配列は一度マスターするとめちゃくちゃ便利に使えますよ!
本記事では、VB.NETの配列について、初心者の方にも分かりやすいように丁寧に解説していきます。
サンプルコードも豊富に用意しましたので、実際に手を動かしながら学んでいただけると幸いです!
【VB.NET】配列とは?
配列とは、同じデータ型の値を複数まとめて管理できる入れ物のことです。
例えば、クラスに生徒が5人いるとします。
生徒の名前を管理したいとき、こんな変数を5つ作るのは大変ですよね。
Dim name1 As String = "田中"
Dim name2 As String = "鈴木"
Dim name3 As String = "佐藤"
Dim name4 As String = "高橋"
Dim name5 As String = "渡辺"配列を使えば、このようにスッキリまとめることができます。
Dim names As String() = {"田中", "鈴木", "佐藤", "高橋", "渡辺"}変数が増えれば増えるほど、配列のありがたみがよく分かります!
変数が増えれば増えるほど、配列のありがたみがよく分かります!
配列はデータをひとまとめにして管理できる、プログラミングの基本中の基本です!
【VB.NET】配列の宣言方法
VB.NETで配列を宣言する基本的な書き方は以下の通りです。
Dim 配列名(要素数 - 1) As データ型例:要素数を指定して宣言する
' 5つの要素を持つ整数型配列を宣言
Dim scores(4) As Integerここで注意が必要なのが、(4) と書いたとき、要素数は5つになる点です。
VB.NETの配列は 0始まり(インデックスは0から) なので、scores(0) ~ scores(4) の5つが使えます。



え、4を指定したのに5つ?なんで?
配列はインデックスが0から始まるので、(4) は「 0から4まで」という意味になります!
例:型ごとの宣言
Dim numbers(4) As Integer ' 整数型
Dim names(2) As String ' 文字列型
Dim flags(1) As Boolean ' 真偽値型
Dim prices(3) As Double ' 倍精度浮動小数点型【VB.NET】配列の初期化と値の代入
配列は宣言と同時に値を設定することができます。
宣言と同時に初期化する
Dim fruits() As String = {"りんご", "みかん", "バナナ", "ぶどう"}この書き方では、要素数を自動的に判断してくれるので、カッコの中に数字を書く必要がありません。
後から値を代入する
Dim scores(2) As Integer
scores(0) = 85
scores(1) = 90
scores(2) = 78インデックス番号を使って、1つずつ値を代入することができます。
サンプルコード(宣言 → 代入 → 表示)
Module Module1
Sub Main()
' 配列を宣言して値を代入
Dim scores(2) As Integer
scores(0) = 85
scores(1) = 90
scores(2) = 78
' 各要素を表示
Console.WriteLine("1番目のスコア:" & scores(0))
Console.WriteLine("2番目のスコア:" & scores(1))
Console.WriteLine("3番目のスコア:" & scores(2))
Console.ReadKey()
End Sub
End Module実行結果は以下のようになります。
1番目のスコア:85
2番目のスコア:90
3番目のスコア:78
配列の要素数を取得する
配列の要素数は Length プロパティで取得できます。
Module Module1
Sub Main()
Dim fruits() As String = {"りんご", "みかん", "バナナ"}
Console.WriteLine("要素数:" & fruits.Length)
Console.ReadKey()
End Sub
End Module要素数:3
また、最後のインデックス番号を取得したい場合は GetUpperBound(0) を使います。
Console.WriteLine("最後のインデックス:" & fruits.GetUpperBound(0))最後のインデックス:2
Length はよく使うので、ぜひ覚えておいてください!
配列をループ処理する
配列の中身を順番に処理したい場面は、実務でもよく出てきます。
ここでは、代表的な2つのループ処理を紹介します。
For文を使ったループ
Module Module1
Sub Main()
Dim fruits() As String = {"りんご", "みかん", "バナナ"}
For i As Integer = 0 To fruits.Length - 1
Console.WriteLine(i & "番目:" & fruits(i))
Next
Console.ReadKey()
End Sub
End Module0番目:りんご
1番目:みかん
2番目:バナナ
インデックス番号を使って要素にアクセスしたい場合は、For文が便利です。
For Each文を使ったループ
Module Module1
Sub Main()
Dim fruits() As String = {"りんご", "みかん", "バナナ"}
For Each fruit As String In fruits
Console.WriteLine(fruit)
Next
Console.ReadKey()
End Sub
End Moduleりんご
みかん
バナナ
インデックスが不要で、要素を順番に処理するだけなら、For Each文の方がシンプルで読みやすいです。
インデックスが必要ならFor文、不要ならFor Each文という使い分けが基本です!
多次元配列の使い方
VB.NETでは、2次元配列も使うことができます。
表(テーブル)のように、行と列でデータを管理したいときに便利です。
Dim 配列名(行数 – 1, 列数 – 1) As データ型
Module Module1
Sub Main()
' 3行2列の2次元配列
Dim matrix(2, 1) As Integer
matrix(0, 0) = 1 : matrix(0, 1) = 2
matrix(1, 0) = 3 : matrix(1, 1) = 4
matrix(2, 0) = 5 : matrix(2, 1) = 6
' 二重ループで全要素を表示
For i As Integer = 0 To 2
For j As Integer = 0 To 1
Console.Write(matrix(i, j) & " ")
Next
Console.WriteLine()
Next
Console.ReadKey()
End Sub
End Module1 2
3 4
5 6



2次元配列は難しそう…
Excelの表をイメージすると分かりやすいですよ!行と列でデータを管理する感じです。
配列のよく使うメソッド
VB.NETの配列では、便利なメソッドがいくつか用意されています。
Array.Sort:配列を並び替える
Module Module1
Sub Main()
Dim numbers() As Integer = {5, 2, 8, 1, 4}
Array.Sort(numbers)
For Each num As Integer In numbers
Console.Write(num & " ")
Next
Console.ReadKey()
End Sub
End Module1 2 4 5 8
Array.Reverse:配列を逆順にする
Module Module1
Sub Main()
Dim numbers() As Integer = {1, 2, 3, 4, 5}
Array.Reverse(numbers)
For Each num As Integer In numbers
Console.Write(num & " ")
Next
Console.ReadKey()
End Sub
End Module5 4 3 2 1
Array.IndexOf:要素の位置を検索する
Module Module1
Sub Main()
Dim fruits() As String = {"りんご", "みかん", "バナナ"}
Dim index As Integer = Array.IndexOf(fruits, "みかん")
Console.WriteLine("みかんのインデックス:" & index)
Console.ReadKey()
End Sub
End Moduleみかんのインデックス:1
Array.Sort や Array.IndexOf は実務でもよく使います!覚えておくと便利ですよ。
配列とListの違いと使い分け
VB.NETでは、配列と似たものとして List があります。
どちらを使えばいいか迷う方も多いので、違いをまとめました。
| 特徴 | 配列 | List |
|---|---|---|
| 要素数 | 宣言時に固定 | 後から追加・削除が可能 |
| パフォーマンス | 高速 | 配列よりやや遅い |
| 書き方 | シンプル | 少し記述が増える |
| 向いている場面 | 要素数が決まっているとき | 要素数が変わるとき |
Module Module1
Sub Main()
Dim fruits As New List(Of String)
' 要素を追加
fruits.Add("りんご")
fruits.Add("みかん")
fruits.Add("バナナ")
' 要素を表示
For Each fruit As String In fruits
Console.WriteLine(fruit)
Next
Console.ReadKey()
End Sub
End Module要素数が最初から決まっているなら配列、あとから追加・削除するならListが向いています!
まとめ
本記事では、VB.NETの配列について解説してきました。
最後にポイントをおさらいしておきましょう!
- 配列は同じデータ型の値を複数まとめて管理できる
- インデックスは 0始まり なので注意が必要
- 要素数は
Lengthプロパティで取得できる - ループ処理はFor文・For Each文どちらも使える
- 2次元配列を使えば表形式のデータも管理できる
Array.SortやArray.IndexOfなどの便利なメソッドがある- 要素数が変わるならListの使用も検討しよう
配列はVB.NETを使う上で欠かせない基本の知識です。
最初は少しとっつきにくいかもしれませんが、サンプルコードを実際に動かしながら練習することで、必ず身についていきます!
ぜひ本記事を参考に、配列をマスターしてみてください!
