|
▼なまず さん:
「VBA 配列」といったもので検索してわかりやすそうなページを選んで
目を通しておかれることを推奨します。
ところで、「よく目にする」Dim a(100000) As Integer や Dim a(100,100) As Integer
はい、よく目にしますね。この記述方式。
でも個人的には、非常によくない記述方式だと思っています。
そのことは後で振れるとして、
Dim a As Integer 、これは Integer型の a という変数を1つだけ既定しますね。
一方、たとえば a という『線』があったとします。
で、この線上に、いくつかの小部屋を配置。aの1号室、aの2号室、・・・・・。
こういったものを 1次元配列 と呼び、Dim a(1 To 5) といったように記述します。
ここで 1 To 5 は LBound To UBoound 、つまり 何号室から何号室まで用意するかを
指定するものです。
a(5) は 配列a の中の 5号室 にあたります。
もう1つ、a という「縦横を持った面」を考えます。
この面をたてよこに区切って、いくつかの小部屋をつくります。
こういったものを 2次元配列 とよび、Dim a(1 To 5,1 To 10) といったように記述します。
LBound To UBound が 縦分と横分、2つでてきます。
縦としては 1階から5階まで、横としては 1号室から10号室までを用意しています。
a(3,6) は 配列a のなかの 3階の6号室になります。
で、この LBound を『横着にも』省略すると、VBAでは(Option Base 1 既定をしない限り)
「0 から」とみなします。
ですから Dim a(5) は 要素が 0 (0号室) から 5 までの 6 つの要素(小部屋)を規定することになります。
★配列規定時は、横着をせず、必ず「自分が意図した」LBound を明示しましょう。
|
|