Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Array関数の使い方・サンプル

Array関数の使い方・サンプル

対象:Excel2007, Excel2010, Excel2013

Array関数の使い方・サンプル

「excel vba array とは 使い方」
「vba array 関数 サンプル」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

VBAで配列を作るときに利用するArray関数の使い方やサンプルを探している方による検索です。

[スポンサードリンク]

Array関数を使ったサンプルマクロ

Array関数を使った簡単なマクロをまずはご紹介します。

Sub Array関数の使い方()

 Dim i As Long
 Dim arr As Variant

 arr = Array("東京", "大阪", "名古屋")

 For i = LBound(arr) To UBound(arr)
  MsgBox arr(i)
 Next i

End Sub

上記のマクロを実行すると、「東京」「大阪」「名古屋」というメッセージボックスが表示されます。

配列に格納されているデータを順番にメッセージボックスに表示しているのが、
 For i = LBound(arr) To UBound(arr)
  MsgBox arr(i)
 Next i
の部分です。

ここで利用している配列を作成しているのが
 arr = Array("東京", "大阪", "名古屋")
の部分です。

Array関数の引数には、配列に格納したいデータを「,」(カンマ)で区切って指定します。

ここでは「東京」「大阪」「名古屋」という文字列を指定しているので、「"」(ダブルクォーテーション)でそれぞれの文字列を括って
 "東京", "大阪", "名古屋"
がArray関数の引数として指定されています。

もしも、数値を配列に格納したいのであれば、
 arr = Array(1, 2, 3)
で、OKです。

Array関数からデータを受ける変数は必ずVariant型に

上記のマクロでは、
 arr = Array("東京", "大阪", "名古屋")
と、結局、文字列を格納されるわけですからString型で宣言したくなるかもしれませんが、これはダメです。

Array関数からデータを受ける変数は必ずVariant型でなければなりません。

Array関数で作成された配列のインデックスの最小値はOption Baseの影響を受ける

Array関数のヘルプは、バージョン等によって間違っている場合があるようです。

Excel 2010のVBAのヘルプ(ローカルにインストールされている版)には、以下のような記述があります。

Array 関数を使用して作成した配列のインデックスの最小値は、常に 0 です。ほかの種類の配列とは異なり、Option Base ステートメントに最小値を指定しても影響を受けません。

Array関数の使い方・サンプル

これは間違いです。

正しくは、Array関数で作成された配列のインデックスの最小値はOption Baseの影響を受けます

「Option Base 1」が記述されているモジュールで、先のマクロをステップ実行して、メニュー[表示]-[ローカルウィンドウ]から、ローカルウィンドウを表示して配列の中身を確認すると、下図のように「Option Base 1」の影響を受けてインデックスの最小値が「0」ではなく「1」になっていることを確認できます。

Array関数の使い方・サンプル

(実はArray関数が「Option Base 1」の影響を受けずに「0」となるケースがあることについて記事を書きました。2015-09-23)

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Array関数の使い方・サンプル

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.