配列の各要素にはFor Each ~ Nextでアクセスできる
配列の各要素にFor Each ~ Nextでアクセスする
配列の要素にはFor Each ~ Nextでアクセスできる
コチラに jinoji さんという方からいただいたコメント。
配列からの取り出しを
For Each e In TargetArray
とやれば2次元配列でもいけるかな?
とのこと。
なにーーーーーっ!知らんかった……。
勝手にCollectionだけだと思っていました……。
やってみた
下記のコードで実験
リスト1 標準モジュール
Public Sub testGetEachValueFromArray() Dim ar(3) As String '……(1)' ar(0) = "アホ" ar(1) = "ボケ" ar(2) = "クズ" ar(3) = "デコスケ" Dim el As Variant '……(*)' For Each el In ar '……(2)' Debug.Print el Next End Sub
(1)からの3行
Dim ar(3) As String ar(0) = "アホ" ar(1) = "ボケ" ar(2) = "クズ" ar(3) = "デコスケ"
で要素数 4 のString型配列を用意して、(2)からの3行
For Each el In ar Debug.Print el Next
では、For Eachでそれぞれの要素にアクセスしてイミディエイトに表示する。
実行結果
普通に全要素にアクセスできている。
ちなみに、リスト1の(*)のところ、
Dim el As Variant
要素取り出し用の変数「el」をVariant型にしているが、これを配列の型に合わせて
Dim el As String
とすると、
このようにコンパイル・エラーになるので注意。
おわりに
初歩的なことでも、まだ知らないことが多いものだなあ。