ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

配列の添字の最小値を「1」に設定する

      2015/03/30

Option Base ステートメントを使用する


【書式】
Option Base 1


添字の既定の最小値は 0 です。Option Base ステートメントを使うと既定の最小値を 1 に設定できます。

Option Base ステートメントを使用する場合は、モジュール内のどのプロシージャよりも前に記述する必要があります。Option Base ステートメントは、モジュール内で一度だけ、次元を含む配列の宣言よりも前に記述します。

Option Base ステートメントの設定が有効になるのは、ステートメントが記述されているモジュール内の配列の添字の最小値のみです。


Option Base ステートメントを設定する

モジュールの宣言セクションに Option Base 1 を指定するとモジュール内の配列の添字の最小値が「1」に設定されます。

Open Base ステートメント例1


VBAソース


実行結果

Option Base 1 ステートメントを設定しているため添字の最小値が「1」となります。
( ※ UBound 関数・LBound 関数 は、それぞれ配列の添字の最大値・最小値を取得します。)

Option Base 1 ステートメント例2



Option Base ステートメントに影響されない関数など

Option Base ステートメントを使用しても Split 関数キーワード ParamArray を使って作成する配列の添字の最小値は 0 のままです。
つまり、Split 関数キーワード ParamArray は、Option Base ステートメントの影響を受けません。

例 Split関数(※ Array 関数 と比較)


実行結果

Array 関数は、Open Base ステートメントの影響を受けるため、val1(1)は、「1」を表示します。一方、Split 関数は、Open Base ステートメントの影響を受けないため、val2(1)は、「20」を表示します。

Option Base 1 ステートメント例3


例 キーワード ParamArray


実行結果

Option Base 1 ステートメントの影響を受けていないので、「12」が表示されます。

Option Base 1 ステートメント例4



 - VBA基本 , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

no image
VBA の演算子(算術演算子)

算術演算子 算術演算を行うときに使用する演算子です。 ^(べき乗)、*(積)、/ …

RGB値一覧表
RGB 値一覧表(XlRgbColor 列挙型)

RGB 値(XlRgbColor 列挙型)一覧表 RGB 関数を使用して、出力さ …

日付時刻:文字列から日付・時刻データを取得( DateValue 関数、TimeValue 関数 )

DateValue 関数(文字列から日付データを取得) 【書式】 date_va …

Collection 01a
コレクション(Collection)オブジェクト「連想配列」

コレクション(Collection)オブジェクトの使い方 【書式】 Dim my …

VBA の演算子(文字連結演算子:& 演算子 + 演算子)

文字連結演算子 文字連結演算子は、文字列の連結を行うときに使用する演算子で、「& …

文字列:指定した数の空白(スペース)からなる文字列を返す(Space 関数)

Space 関数 【書式】 result = Space ( number ) …

文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)

InStr 関数・InStrB 関数の使い方 【書式】 result = { I …

文字列:文字を指定数並べた文字列を返す(String 関数)

String 関数 【書式】 result = String ( number, …

変数がオブジェクト型かどうかをチェックする( IsObject 関数 )

IsObject 関数の使い方 【書式】 result = IsObject ( …

文字に下線を設定する(Underline プロパティ)

下線を設定(Underline プロパティ) Underline プロパティは、 …