Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3259 / 76735 ←次へ | 前へ→

【79109】Re:VBAのコードの意味
発言  β  - 17/5/12(金) 11:22 -

引用なし
パスワード
   ▼なまず さん:

「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 を明示しましょう。
2 hits

【79108】VBAのコードの意味 なまず 17/5/12(金) 9:49 質問[未読]
【79109】Re:VBAのコードの意味 β 17/5/12(金) 11:22 発言[未読]
【79110】Re:VBAのコードの意味 なまず 17/5/12(金) 15:17 お礼[未読]

3259 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free