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

VB.NETの多次元配列の作り方と活用方法!初心者向け完全ガイド

VB.NETの多次元配列の作り方と活用方法
VB.NETの多次元配列の作り方と活用方法

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

生徒

「VB.NETでたくさんのデータを整理して管理したいのですが、配列って一つずつ並べるだけなんですか?」

先生

「いいえ、実は『表』のような形式でデータを管理できる『多次元配列』という便利な仕組みがあるんですよ。」

生徒

「表形式ですか?それならエクセルみたいにデータを扱えそうですね!どうやって使うんですか?」

先生

「その通りです。縦と横の広がりを持たせる方法を詳しく解説していきますね!」

1. 多次元配列とは何か?

1. 多次元配列とは何か?
1. 多次元配列とは何か?

VB.NETを学ぶ上で、避けて通れないのが「配列(はいれつ)」です。配列とは、同じ種類のデータを一つの箱にまとめて入れておくための棚のようなものです。これまでに学んだ「1次元配列」は、データが一列に並んだ「長い一本の棚」のようなイメージでした。

しかし、実際のプログラミングでは、データが一列だけでは足りない場面が多々あります。そこで登場するのが「多次元配列(たじげんはいれつ)」です。最もよく使われるのは「2次元配列」で、これは数学で習う「行列」や、お仕事で使う「Excel(エクセル)のシート」をイメージすると非常に分かりやすいでしょう。縦(行)と横(列)がある表形式でデータを保存できるのが特徴です。

多次元配列を使うことで、例えばクラス全員の「国語、算数、理科」の点数を一覧表として管理したり、ゲームのマップ情報を座標(縦の位置と横の位置)で管理したりすることができるようになります。プログラミング未経験の方でも、「データを整理するための格子状のマス目」だと考えれば、難しくありません。

2. 2次元配列の宣言と作り方の基本

2. 2次元配列の宣言と作り方の基本
2. 2次元配列の宣言と作り方の基本

それでは、具体的にVB.NETで2次元配列を作る方法を見ていきましょう。配列を作ることを専門用語で「宣言(せんげん)」と言います。「これからこういう名前の箱を使いますよ!」という合図ですね。

2次元配列を宣言するときは、カッコの中に「カンマ」を一つ入れます。書き方は以下の通りです。


' 縦(行)が3、横(列)が2の要素を持つ配列を宣言する
' カッコの中の数字は「最大インデックス」を指定します
Dim seiseki(2, 1) As Integer

ここで初心者が最初につまずきやすいのが「添字(そえじ)」、別名「インデックス」の数え方です。プログラミングの世界では、数字は「0」から数え始めます。つまり、(2, 1)と指定した場合、縦は「0, 1, 2」の3つ、横は「0, 1」の2つのスペースが作られることになります。合計で $3 \times 2 = 6$ 個のデータを入れることができます。

このように、カンマを使って縦と横のサイズを指定することで、簡単に表形式のデータ入れ物を用意することが可能です。データ型(ここではInteger=整数)を指定することで、その箱に何を入れるかを決めることができます。

3. 2次元配列に値を代入する方法

3. 2次元配列に値を代入する方法
3. 2次元配列に値を代入する方法

箱を用意したら、次はそこにデータを入れなければなりません。この操作を「代入(だいにゅう)」と呼びます。代入するときも、先ほどの「添字(インデックス)」を使って、どの場所にデータを入れるかを指定します。

例えば、出席番号0番の生徒の「算数」の点数を「80点」にしたい場合は、次のように書きます。


' 配列の指定した場所に値を代入する
seiseki(0, 0) = 80 ' 0行0列目に80を入れる
seiseki(0, 1) = 95 ' 0行1列目に95を入れる
seiseki(1, 0) = 70 ' 1行0列目に70を入れる

また、宣言と同時に初期値(最初から入れておきたい値)を設定することも可能です。これを「初期化(しょきか)」と言います。中カッコ{}を二重に使うことで、視覚的にも表のような形で記述できます。


' 宣言と同時に初期値をセットする
Dim scores(,) As Integer = {
    {80, 90}, ' 0行目
    {75, 85}, ' 1行目
    {60, 70}  ' 2行目
}

この書き方だと、コードを読んだだけで「あ、これは表になっているんだな」と直感的に理解できるので、非常にオススメです。パソコンを初めて触る方でも、エクセルのセルに数字を打ち込む感覚に近いことがわかるはずです。

4. 多次元配列からデータを取り出す(参照)

4. 多次元配列からデータを取り出す(参照)
4. 多次元配列からデータを取り出す(参照)

データを入れたら、今度はそれを取り出して使ってみましょう。これを取り出すことを「参照(さんしょう)」と言います。参照も代入と同じく、カッコの中に場所(インデックス)を指定するだけです。

以下のサンプルコードでは、配列に入れた値を画面に表示(出力)する方法を紹介します。Console.WriteLineというのは、画面に文字や数字を出すための魔法の言葉だと思ってください。


Module Module1
    Sub Main()
        ' 2行2列の配列を作成
        Dim fruits(1, 1) As String
        
        ' データを代入
        fruits(0, 0) = "りんご"
        fruits(0, 1) = "赤い"
        fruits(1, 0) = "レモン"
        fruits(1, 1) = "黄色い"
        
        ' データを取り出して表示
        Console.WriteLine(fruits(0, 0) & "は" & fruits(0, 1))
        Console.WriteLine(fruits(1, 0) & "は" & fruits(1, 1))
    End Sub
End Module

実行結果は次のようになります。


りんごは赤い
レモンは黄色い

このように、特定の場所を指定することで、自由自在にデータを取り出すことができます。文字列(String)も扱えるので、数値だけでなく名前や状態なども管理できてとても便利ですね。

5. 繰り返し処理(For文)と多次元配列の組み合わせ

5. 繰り返し処理(For文)と多次元配列の組み合わせ
5. 繰り返し処理(For文)と多次元配列の組み合わせ

多次元配列の本領が発揮されるのは、「繰り返し処理(ループ)」と組み合わせたときです。一つずつ手作業で値を表示させるのは大変ですが、コンピュータに任せれば、何百、何千というデータを一瞬で処理できます。

VB.NETでは、For文という命令を使って、繰り返し処理を行います。2次元配列の場合は、外側のループで「行(縦)」を、内側のループで「列(横)」を回す「二重ループ」というテクニックをよく使います。


Dim table(,) As Integer = {{1, 2}, {3, 4}, {5, 6}}

' GetUpperBound(0) は行の最大インデックス、(1) は列の最大インデックスを返します
For i As Integer = 0 To table.GetUpperBound(0)
    For j As Integer = 0 To table.GetUpperBound(1)
        Console.Write(table(i, j) & " ")
    Next
    Console.WriteLine() ' 行が終わったら改行する
Next

GetUpperBoundという単語が出てきましたね。これは「その次元の最大数はいくつか?」を調べるための便利な機能です。これを使うことで、配列の大きさが変わっても自動的に最後まで処理してくれる、賢いプログラムになります。

6. 多次元配列を扱う際の注意点とコツ

6. 多次元配列を扱う際の注意点とコツ
6. 多次元配列を扱う際の注意点とコツ

多次元配列は非常に強力ですが、初心者がハマりやすいポイントもいくつかあります。まず一つ目は、「次元を増やしすぎないこと」です。3次元配列、4次元配列と増やすことは可能ですが、次元が増えれば増えるほど、人間の頭ではイメージしづらくなり、プログラムのミス(バグ)の原因になります。基本的には2次元、どうしても必要なときでも3次元までにとどめておくのが、読みやすいコードを書くコツです。

二つ目は、「配列のサイズは後から変えるのが少し面倒」という点です。一度作った配列の大きさを変えるにはReDimという命令を使いますが、多次元配列の場合は一番最後の次元しかサイズを変更できないという制約があります。そのため、あらかじめ必要な大きさをしっかり考えてから作ることが大切です。

もし、データの数がどんどん増えたり減ったりする場合は、配列ではなく「コレクション」という別の道具を使うことも検討しましょう。ですが、まずはこの多次元配列を使いこなせるようになることが、VB.NET上達への近道です。表形式のデータを扱えるようになると、作れるアプリの幅が一気に広がりますよ!

7. 実践例:九九の表を2次元配列で作ってみよう

7. 実践例:九九の表を2次元配列で作ってみよう
7. 実践例:九九の表を2次元配列で作ってみよう

最後に、これまでの知識を総動員して、プログラミング学習の定番である「九九の表」を2次元配列に保存して表示するプログラムを作ってみましょう。これは多次元配列の構造を理解するのに最高の練習問題です。


Module Module1
    Sub Main()
        ' 9x9の表を用意(インデックスは0〜8なので、(8, 8)と指定)
        Dim kuku(8, 8) As Integer

        ' 九九の計算結果を配列に代入する
        For row As Integer = 0 To 8
            For col As Integer = 0 To 8
                ' 行と列に1を足して計算(1の段〜9の段)
                kuku(row, col) = (row + 1) * (col + 1)
            Next
        Next

        ' 配列の中身をきれいに表示する
        Console.WriteLine("--- 九九の表 ---")
        For i As Integer = 0 To 8
            For j As Integer = 0 To 8
                ' Tab文字を使って間隔を揃える
                Console.Write(kuku(i, j) & vbTab)
            Next
            Console.WriteLine() ' 段が変わるごとに改行
        Next
    End Sub
End Module

このプログラムを実行すると、画面にきれいな九九の表が表示されます。データを計算して保存し、それを後からまとめて表示するという、プログラミングの基本動作がすべて詰まっています。このコードを自分で書き換えて、数字を2倍にしてみたり、表示する範囲を変えてみたりすることで、多次元配列への理解がさらに深まるはずです。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET Blazor入門!C#で作る最新のWebアプリ開発
New2
VB.NET
VB.NETのStack(スタック)を完全解説!LIFO処理の基本と使い方
New3
VB.NET
VB.NETのキュー(Queue)を完全解説!初心者でもわかるFIFO処理と使い方
New4
VB.NET
VB.NETのNullable型を徹底解説!初心者でもわかる使い方と注意点
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETの配列(Array)を完全マスター!初心者でも基礎からわかる宣言・初期化ガイド
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET Coreを.NET CLIで作成する方法を完全解説!初心者でも迷わないコマンド操作入門
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのコーディング規約を完全解説!初心者でもわかる読みやすいコードの基本ルール
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの例外処理で初心者がつまずくポイントと解決策!エラー対策を完全攻略
No.5
Java&Spring記事人気No5
ASP.NET
Razor Pagesとは?MVCとの違いをやさしく理解しよう【ASP.NET初心者向け】
No.6
Java&Spring記事人気No6
VB.NET
VB.NETでアプリケーション全体の例外をキャッチする方法を完全ガイド
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用