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

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

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

  関連記事

引数が省略されたかどうかをチェックする( IsMissing 関数 )

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

色の設定(ThemeColor プロパティ・TintAndShade プロパティ)

ThemeColor プロパティ・TintAndShade プロパティ テーマカ …

Erase ステートメント(配列の初期化・動的配列のメモリ解放)

Erase ステートメントの使い方 【書式】 Erase myArray [, …

文字列:文字列の長さを取得( Len 関数、LenB 関数 )

Len 関数(文字列の長さを取得) 【書式】 result_len = Len …

データ型変換関数

データ型変換関数の使い方 【書式】 function ( expression …

ショートカットメニュー
ショートカットメニュー(CommandBar オブジェクト)

ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …

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

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

日付時刻:年・月・日を取得(Year、Month、Day 関数)

日付から年・月・日を取得する関数 【書式】 date_year = Year ( …

オートシェイプの種類を表す定数
オートシェイプの種類を表す定数(MsoAutoShapeType 列挙型)

MsoAutoShapeType 列挙型 オートシェイプオブジェクトの図形の種類 …

文字列:文字列の一部を別の文字列で置換(Replace 関数)

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