Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

Excel VBAの配列にはどんな種類があるのか - 1次元配列 -

はじめに

少し前になりますが、「Excel VBAで配列を覚える労力は報われるのか」という記事を書きました。

lbibouroku.hatenablog.com

今回は、その続きの、配列の種類について説明します。

◆目次◆

配列の種類

配列には、以下の4種類があります。

  1. . 1次元配列
  2. . 多次元配列
  3. . 静的配列
  4. . 動的配列

それぞれの配列がどんなものなのかを数回に分けて説明します。

今回は1次元配列を説明します。

1次元配列

配列は、箱の集合体のようなものを想像するとわかりやすいです。1次元配列は、横並びの箱に1つずつ値を入れていきます。

なお、配列の始まりは、指定がない場合は「インデックス:0」から始まります。

f:id:lbibouroku:20210817233638p:plain

Excel VBAで配列のコードを書くときは以下の手順で書きます。

' 1.配列を宣言する
Dim 配列名(インデックスの最大値) As データ型

' 2.宣言した配列に値を入れる
配列名(インデックス)  =

では、3つの箱に以下の値を入れて、配列を作ってみます。

  • インデックス0:Coffee
  • インデックス1:Tea
  • インデックス2:Milk

f:id:lbibouroku:20210817233703p:plain

それぞれの箱に値を入れました。この配列をコードで書いてみます。

' 開始位置を指定しない配列
Sub array1_1()

    Dim drink(2) As String
    
    drink(0) = "Coffee"
    drink(1) = "Tea"
    drink(2) = "Milk"

End Sub

このプロシージャを実行し、ローカルウィンドウで結果を見ると、意図した通り配列に値が入っています。

f:id:lbibouroku:20210817233751p:plain

ちなみに、インデックスの開始を0以外から開始することも可能です。その場合は、インデックスの範囲を指定します。

' 1.配列を宣言する
Dim 配列名(インデックスの開始の値 To インデックスの最大値) As データ型

' 2.宣言した配列に値を入れる
配列名(インデックス)  =

f:id:lbibouroku:20210817233810p:plain

たとえば、上記のように「インデックス:1」から始めたい場合のコードは以下のとおりに書きます。

' 開始位置を指定する配列
Sub array1_2()

    Dim drink(1 to 3) As String
    
    drink(1) = "Coffee"
    drink(2) = "Tea"
    drink(3) = "Milk"

End Sub

さいごに

いかがでしたか。なんとなく「配列を使うと、数字がついた箱に値を入れることができる」ということが分かったと思います。実践的な配列の使い方については、順を追って説明しますので、もうしばらくは、配列の種類のと使いかたを説明します。

次回は多次元配列について説明します。