残りの人生は~シラフで~

断酒をした事で生まれたシラフの時間に、思う事を書いていきます

VBA 配列のお作法

思っていた挙動と違って苦戦した、VBAでの配列操作。

 

復習がてらおさらいしておこうと思います。

 

まずは宣言方法。

 

Dim 配列名(要素数) As データ型

 

2次元配列なら、

 

Dim 配列名(要素数, 要素数) As データ型

 

例えば、10行5列の2次元配列を宣言する場合は・・

 

Dim myArray(1 To 10, 1 To 5) As Integer

 

数字の範囲をToで表現するのは、VBAっぽいですね。

For文の時とか。

 

 

これまたハマった動的配列。

プログラムの中で配列に格納される要素が増減するパターン。

 

まず宣言時には、要素数を指定せずに、Variant型にしておく必要があります。

 

Dim 配列名() As Variant
配列名 = Array(要素(0), 要素(1), ・・・)

 

その後、要素数の変化が発生する際には、再度宣言。

 

ReDim 配列名(添字の上限値, ・・・) As Variant

 

これには更に注意が必要で・・・

・Reの名前の通り、初期化が伴う

・値を保持したい場合には、ReDimに続けてPreserveを追記する

・そもそも、最高次元のみ変更可。(行列で言う列のみ)

 

 

なかなかこの辺のポイントに辿り着かず、

書いてはエラー書いてはエラーに陥りました。

 

まぁ分かってしまえば、もう忘れない!・・ハズ!