Excel VBA 配列とは(基礎)

投稿者: | 2020年10月4日
excelアイコン

Excelバージョン

マイクロソフト365

 

配列?っていうとなんだか難しい表現ですが単純に番号が付いた変数のです。

それではいってみましょう!

 

配列とは

配列の特徴

・複数の番号が付いた値を格納できます。

・取り出す場合はその番号で取り出します。

・高速で処理をしてくれるので時短が可能になります。

など

 

配列の宣言

まずは配列を利用する際は、変数と一緒で宣言をします。

 

静的配列の宣言

Dim 配列(3) as String

Dim 配列(0 to 3) as Integer

括弧の中に配列数の指定をすると、静的配列と呼ばれるものになります。

(あとから配列数の変更は不可です)

 

動的配列の宣言

Dim 配列 ← データ型を指定しない場合はVariant型になります。

Dim 配列 as Variant

Dim 配列() as String

データ型がVariant型や空の括弧は動的配列と呼ばれるものになります。

(あとから配列数の変更が可能です)

 

たくさんあってややこしいですね~(*^^)v

とにかくVBAは配列の宣言のやり方はたくさんあるので、ご自身の得意となる書き方を1つ見つけ、徐々に色々覚えていった方がいいと思います!

 

配列の数

Dim 配列(3)

4個の配列を作成するという意味です。

配列の数え方は0からカウントされます→0,1,2,3

ですので(3)と宣言した場合は4個の配列を作成するということになります。

配列(0)=”A”

配列(1)=”B”

配列(2)=”C”

配列(3)=”D”

 

Option Base 1

モジュールの最初にOption Base 1と記述した場合は配列の数え方が1からになります → 1,2,3,4

配列(1)=”A”

配列(2)=”B”

配列(3)=”C”

配列(4)=”D”

こういった機能もあるのですが他の言語の配列は0から数えるのが普通なのであんまりこれは使用しない方がいいと思います!

 

配列名

配列名は変数と一緒で自分で決めます。

配列(0)=”A”

配列(1)=”B”

配列(2)=”C”

配列(3)=”D”

 

配列インデックス(添え字)

()の付いた番号をインデックスまたは添え字といいます。

配列(0)=”A”

配列(1)=”B”

配列(2)=”C”

配列(3)=”D”

 

配列要素

要素とは配列の中身の値です。

配列(0)=“A”

配列(1)=“B”

配列(2)=“C”

配列(3)=“D”

 

配列に値を格納

配列に値を格納➀

最も基本的な配列の格納方法。

配列名にインデックスをつけて値を格納できます。

結果

配列に値を格納

 

 

配列に値を格納➁

array関数を使用する。

配列=array(“A”,”B”,”C”,”D”)

arrayと記述して括弧の中をカンマで区切って値を格納します。

array関数を使用する場合はデータ型をVariantにします。

結果

配列に値格納2

 

配列のデータ型の値

データ型の指定で値が変わる

配列を作成した時点で、データ型の指定方法によって下記の図のように要素の値が違います。

Variant型

variant型

 

Integer型

integer型

 

String型

string型

 

このような特徴があります。

 

配列をセルに書出す(基本)

配列書出しの基本

A1セルからA4セルに配列の値を書きだす基本の記述例

結果

配列セルに書出し

 

一気に配列をセルに書きだす(応用)

LboundとUbound

特徴

Lbound → インデックス(添え字)最小値を取得してくれます。

Ubound → インデックス(添え字)の最大値を取得してくれます。

 

配列のインデックスの最大値と最小値を取得することによって繰り返し処理Forのカウンター値を、最小値と最大値をセットできるので、データの数がわからなくても一気に書きだせます。

 

For~Nextを使用した例

 

VBAサンプル

1秒もかからないスピードで書き出します。

そのまま下記コードを標準モジュールにコピペで即試せます(*゚▽゚)ノ

Debug.Print

 

解説

下記のウオッチウィンドウを見てわかるとおり、配列aryのLboundとUboundのインデックスの値の0(最小値)9(最大値)が取得できているのが確認できます。

配列最小値と最大値

この値をFor文のカウンターの下限値と上限値をセットするこにより、下記と同じ動作になるので今回のような結果になります。

 

まとめ

基本というのは一番つまらなくてわかりづらいですよね~。でも最初から配列が分かる人は120%いないのでコツコツ挫折しないように覚えていくしか方法はありません。

それでず~っとやってると、あっこれってこういうことだったんだ~!っていう日がある日突然やってきます。それが1か月後か1年後かはわかりかせんが、そうしたら道路の渋滞から抜けた時のようにものすごいスピードであれもこれもって頭に入っていきます。ですのであきらめずに継続していけばいつかわかる日が必ず訪れます(^o^)o 

だから大丈夫です!諦めずにやって私も長年さまよい続けて、挫折→またやる→挫折→またやる、みたいな感じのルーティンをしていけば、必然的に覚えちゃいます!

ということで次回は膨大なデータ処理をする際に非常に便利で、配列の宣言後に配列のサイズを変更ができる動的配列について解説していきたいと思います。

【エクセルVBA】動的配列の使用方法RedimとRedimPreserve

以上です。