EXCEL VBA 配列の使い方(Array LBound UBound)

EXCEL VBA 配列の使い方(Array LBound UBound)  

 

 ●はじめに
ここでは、配列の使い方を説明いたします。配列は、VBA入門者・初心者にとっては、わかりずらいが一度覚えてしまえば、感覚的にわかってくると思います。配列の考え方は、プログラムを理解する上で、必要な知識なので何となくでも大丈夫なので覚えましょう。

●2次元配列・セル範囲の内容を配列に格納・配列の内容をセルに代入(一括・高速化・セルの指定範囲)については、下記を参照して下さい。

EXCEL VBA  2次元配列・セル範囲の内容を配列に格納・配列の内容をセルに代入(一括・高速化・セルの指定範囲)


●連想配列でクロス集計・項目別集計・グループ集計 (Scripting.Dictionary) については、下記を参照して下さい。

EXCEL VBA 連想配列でクロス集計・項目別集計・グループ集計 (Scripting.Dictionary) テクニック

 

 

 ●配列の説明
それでは、配列の説明をいたします。まず、サンプルとして「Hako」と言う配列を作成します。配列には、必要個数の番号を指定します。(例)Dim Hako(4)as Long とは、(4)の意味は、0~4の順番の入れ物があると考えます。”4”と指定すると0~4なので、0からカウントすると5個入れ物があると考えて下さい。

 

●次に、配列を作成した時に、配列に代入されるイメージが下記の通りになります。

配列名
Dim hako(4) as String
配列の中身
hako(0)A商店
hako(1)Bスーパー
hako(2)Cマート
hako(3)Dデパート
hako(4)Eコンビニ

 

 ●プログラム説明(サンプル①)
上記の配列をコード化(プログラム)すると下記の通りになります。

 

 

●配列を指定する際は、文字はStringを指定したり、数値は、Long等をしていします。なんでも指定する事ができるVariantなどがあります。ここでは、3つのみ取り上げています。

配列・変数内容
String文字列を保管
Long数値を保管
Variantバリアント型変数は、文字でも数字でもなんでも大丈夫です。

 

 ●プログラム説明(サンプル②)
下記のコードは、数値を保管するコードの記述方法です。

 

 

 ●配列で使用する関数
配列で使用する関数「Array LBound UBound」の説明をいたします。

 

関数名使い方説明
ArrayDim Boxs as Variant
Boxs = Array("日本","アメリカ","ブラジル","フランス")
Arrayは、カンマ区切りで、データ配列に格納する事ができます。
LBoundDim StartBox as Integer
StartBox = LBound(Boxs)
LBoundは、データ配列として最小値に格納している番号を返します。
UBoundDim EndBox as Integer
EndBox = LBound(Boxs)
UBoundは、データ配列として最大値に格納している番号を返します。

 

 ●プログラム説明(サンプル③)
続いて、Array LBound UBoundを使ったサンプルプログラムを下記につくりました。プログラムの説明ですが、データを格納する為に、「Bookbox」の名前で配列を「Variant」形式で作成します。「Variant」は、なんでもデータとして格納する事ができますので、配列を作成するには、一番適しています。その作成した配列「Bookbox」にサンプルデータ(漫画の雑誌名)を登録します。登録したデータに対してFor Next を使いLBound(BooKbox) でデータが格納されている最小値とUBound(BooKbox)で最大値を指定する事ができるので、格納されている全部のデータをMsgBoxで表示させます。

 

 

 ●実行結果(下記の結果は、最初に表示される結果のみ) (クリックして拡大)

 

 

 ●プログラム説明(サンプル④)
続いて、上記プログラムと同じ考えですが、配列を2個作成してデータを格納し、メッセージボックスを使い表示するサンプルプログラムです。

 

 

 ●実行結果(下記の結果は、最初に表示される結果のみ) (クリックして拡大)

 

 

 ●プログラム説明(サンプル⑤)
次は、セル(A1:A3)に入力さている値を配列に格納して、セル(C1:C3)へ値を表示させるプログラムです。(配列のデータとしては、縦3×横1として定義)

 

 

 ●実行結果
配列格納先を2つ作成して、BoxArray1にA列のデータを格納して、BoxArray2を再定義してBoxArray1のデータをBoxArray2へ移して、そのデータをC列(C1:C3)に転記されました。

 

 ●実行前 ※A列(A1~A3)にAAA,CCC,BBB が記入されています。このデータを配列として格納します。(クリックして拡大)

 

 ●実行後 ※A列のデータを配列に格納して、別の配列に移してC列に転記されました。(クリックして拡大)

 

 

 ●プログラム説明(サンプル⑥)
次は、セル(A1:B3)に入力さている値を配列に格納して、セル(C1:D3)へ値を表示させるプログラムです。(配列のデータとしては、縦3×横2として定義)

 

 

 ●実行結果
配列格納先を2つ作成して、BoxArray1にA列のデータを格納して、BoxArray2を再定義してBoxArray1のデータをBoxArray2へ移して、そのデータをC列(C1:D3)に転記されました。
※今回の配列定義については、縦3×横2データを定義しています。

 

●実行前 ※A列(A1~B3)に「AAA,CCC,BBB:あああ、いいい、ううう」 が記入されています。このデータを配列として格納します。(クリックして拡大)

 

 ●実行後 ※セルA1~B3のデータを配列に格納して、別の配列に移してセルC1~D3に転記されました。(クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
以上が配列の説明でした。配列を使ってデータを取り扱うとデータの取り扱いの幅が広がりますので、上記のプログラムを参考にしていただき、自分なりに試して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。