コンピュータというのは、似たようなことを何度も繰り返すのが得意ですから、配列とループ処理が使えるようになるかどうかが、その先へ進めるかどうかの大きな分岐点の一つです。
その配列を難解にしているのに、0オリジンという考え方があるように感じます。
配列のインデックス番号(添字)が0から始まるという点です。
例えば東京23区名を配列に代入するには、
「Dim name23ku(22) As String」
といった宣言をするわけです。
23区(23個)だから、「name23ku(23)」としたくなるところですが、インデックス番号が「0」からはじまるため、「Dim name23ku(22)」という宣言で計23個の配列が用意されることになります。
その配列をループ処理内で単純に利用するときには、
「For i = 1 To 23」
ではなく
「For i = 0 To 22」
といった記述になります。
この「0」からはじまるという点が、配列を難解にしている要因の一つです。
VBA(Visual Basic for Applications)ではこのインデックス・添え字の最小値を「0」から「1」にすることができます。
バリバリのプログラマーになろうというのではなく、マクロも書けるExcelの詳しい人という立場でよいのならば、インデックス・添え字の最小値は1にする方が簡単でいいんじゃないかと考えています。
モジュールの宣言セクションに
「Option Base 1」
と記述する
通常の0オリジンの状態というのは、「Option Base 0」というのが暗黙に宣言されている状態なのです。これを明示的に「1」が基準だと宣言してやるわけです。
ちなにみこの宣言を知った方の中で、「Option Base 2」「Option Base 3」といった宣言をすれば、2オリジン・3オリジンになるのかと考える方もいらっしゃいますが、それは無理です。有効なのは、「Option Base 0」「Option Base 1」だけです。
VBAでコーディングをはじめたのだけれど、配列が苦手だという方は「Option Base 1」を一度試してみてはいかがでしょう。
- Newer:クイック起動にフォルダを作成
- Older:稼げるSEになるための プレゼンシート作成入門[PowerPoint活用編]
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAで配列のインデックス・添字を1からに-Option Base 1