ExcelWork.info

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

配列(多次元配列・配列の次元の変更)

      2015/04/02

多次元配列


【書式】 多次元配列の宣言

<静的配列(固定長配列)>
Dim myArray ( [ lower To ] upper [, [ lower To ] upper … ] ) [ As Type ]

<動的配列>
Dim myArray () [ As Type ]


【書式】 配列の要素数・次元の変更

ReDim [ Preserve ] myArray ( [ lower To ] upper [, [ lower To ] upper … ] ) [ As Type ]


【項目の説明】

  • myArray  ・・・  配列の変数名
  • lower  ・・・  配列の添字最小値(先頭のインデックス:省略可)
  • upper  ・・・  配列の添字最大値(末尾のインデックス
  • Type  ・・・  変数のデータ型 を指定(省略時は Variant(バリアント型)になります)

lower To 」の部分は省略可能です(省略時の配列の添字最低値は「0」、Option Base 1 を指定している場合は「1」となります)。
 upper, lower To upper, upper
のように指定できます。


【Dim ステートメントについて】

配列の添字の部分( “( )” 内の部分 )の構文は、次元に応じて以下のように指定します。
 lower To upper, lower To upper, lower To upper
最大60次元まで指定可能です

Dim ステートメントで、要素数を指定せずに宣言した場合その配列は実行時に要素数を変更することができます(動的配列)。しかしそのままでは使用できないので、ReDim ステートメントを使って、要素数・次元数を指定します。


【ReDim ステートメントについて】

ReDim ステートメントを使用すると動的配列の要素数・次元数を変更することができます。

Preserve キーワードを使用すると、その配列にすでに格納されている値を失わずに要素数を変更することができます。ただしこれを使用する時は、配列の次元を変更することはできません。



多次元配列の使用例

VBAソース(その1)


実行結果

多次元配列 例01


VBAソース(その2)


実行結果

多次元配列 例02


VBAソース(その3)




 - VBA基本 , , , , ,

Message

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

  関連記事

ADO Stream オブジェクト テキスト(UTF-8)読み込み
テキストファイル(UTF-8)を読み込み、書き出し(ADODB.Stream)

Stream オブジェクト ADO(ActiveX Database Objec …

変数が数値型かどうかをチェックする( IsNumeric 関数 )

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

書式を変換(Format 関数)

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

演算子の優先順位
VBA の演算子(演算子の優先順位)

演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …

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

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

Dictionary オブジェクト 使用例1
連想配列(Dictionary オブジェクト)

連想配列 連想配列とは、添字(キー)に文字列を使用することができる配列です。 V …

太字・斜体(Bold,Italic,FontStyle)例
フォント 太字・斜体(Bold, Italic, FontStyle プロパティ)

太字の設定(Bold プロパティ) Bold プロパティは、フォントを太字にする …

ThisCell プロパティ
ユーザー定義関数:セルを取得する(ThisCell プロパティ)

入力されたセルを取得する ワークシート上で使用する Function プロシージ …

日付時刻:時・分・秒を取得(Hour、Minute、Second 関数)

日付時刻から時・分・秒を取得する関数 【書式】 time_hour = Hour …

Randomize 関数 例1
乱数ジェネレータを初期化 (乱数系列を再設定) する(Randomize ステートメント)

Randomize ステートメントの使い方 Rnd 関数 を使用する前に使用しま …