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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

フォントの設定(Font プロパティ)

フォントの設定(Font プロパティ) 指定されたオブジェクトのフォント情報(F …

四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)

Round 関数(丸め)の使い方 【書式】 value = Round ( ex …

指定した値を8進数で表記した文字列に変換する(Oct 関数)

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

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

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

ユーザー設定リスト
ユーザー設定リストを使って並べ替える(Sort)

VBAでリスト、テーブルを並べ替える(Sort) VBAで、ソートを行うには、S …

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

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

InStrRev 関数
文字列:文字列を最後から検索してその最初の文字位置を返す(InStrRev 関数)

InStrRev 関数 任意の文字列の中で、指定した文字列を最後から検索して、見 …

現在の日付時刻を取得する
日付時刻:現在の日付・時刻を取得・設定(Now、Date、Time)

現在の日付・時刻を取得・設定 現在の日付・時刻を取得(Now 関数、Date 関 …

TextToColumns メソッド
セルのデータを区切り文字で複数のセルに分割する(TextToColumns メソッド)

TextToColumns メソッド TextToColumns メソッドを使用 …

Resize プロパティ1
指定したセル範囲のサイズを変更(Resize プロパティ)

Resize プロパティ 指定したセル範囲のサイズ(行数や列数)を変更します。 …