Excel VBA | 多次元配列

VBA
スポンサーリンク

では、Excel VBAの 多次元配列 を、プログラミング初心者向けにかみ砕いて、具体的な例題を交えて詳しく説明します。


1. 多次元配列って何?

例えると

  • 1次元配列 → 「一列に並んだ箱」
    例:「リンゴ、バナナ、オレンジ」を順番に置く感じ
  • 2次元配列 → 「行と列がある表」
    例:生徒の名前と点数を表にしたいとき
名前数学国語
佐藤 一郎8090
山田 花子7585
  • 3次元配列 → 「棚が複数あって、各棚に箱があって、その中にモノがあるイメージ」
    → 今回は初心者向けなので、2次元配列まで理解できれば十分です。

2. 配列の宣言の仕方(2次元配列)

Dim scores(1, 2) As Integer
VB
  • scores が配列の名前
  • (1, 2)行数 × 列数
    • 0行目〜1行目 → 2行
    • 0列目〜2列目 → 3列
  • データ型は Integer(整数)

3. 配列に値を入れてみよう

' 1行目
scores(0, 0) = 佐藤 一郎
scores(0, 1) = 80
scores(0, 2) = 90

' 2行目
scores(1, 0) = 山田 花子
scores(1, 1) = 75
scores(1, 2) = 85
VB
  • (行, 列) の順番で値を入れます
  • 0から数えるのがポイントです(0スタート)

4. 配列の値を取り出す

MsgBox scores(0, 0) & "の数学の点数は " & scores(0, 1) & "点です"
VB

→ 結果:

佐藤 一郎の数学の点数は80点です

5. ループを使うと便利

長い配列もループで簡単に表示できます。

Dim i As Integer, j As Integer

For i = 0 To 1 '行
    For j = 0 To 2 '列
        MsgBox scores(i, j)
    Next j
Next i
VB
  • 外側のループ:行を回す
  • 内側のループ:列を回す

6. 練習問題(初心者向け)

問題:
2人の生徒の国語・数学の点数を2次元配列に入れて、各生徒の合計点を表示するプログラムを書こう。

ヒント:

  • 配列は scores(1, 2)
  • 点数は適当に入れる(例:80, 90, 75, 85)
  • ループを使うと便利

7. 練習問題の解答例

Sub Sample2DArray()
    Dim scores(1, 2) As Integer
    Dim i As Integer, total As Integer
    
    ' 名前
    scores(0, 0) = "佐藤 一郎"
    scores(1, 0) = "山田 花子"
    
    ' 数学
    scores(0, 1) = 80
    scores(1, 1) = 75
    
    ' 国語
    scores(0, 2) = 90
    scores(1, 2) = 85
    
    ' 合計点を計算
    For i = 0 To 1
        total = scores(i, 1) + scores(i, 2)
        MsgBox scores(i, 0) & "の合計点は " & total & "点です"
    Next i
End Sub
VB
  • 実行すると2人分の合計点が表示されます。
  • この形で、多次元配列の扱い方が理解できます。

ポイントまとめ

  1. 多次元配列は行×列の表のような構造
  2. (行, 列) の順で値を入れる
  3. 配列のインデックスは0から始まる
  4. ループでまとめて処理すると便利
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました