トップへ戻る

Autoitプログラミング

二次元配列と多次元配列

配列には一次元、二次元、三次元...というように多次元配列があります。

 

AutoIt は最大64次元または1600万の要素をサポートしています。

 

64次元など通常使うことはありませんが・・・

 

通常よく使うのは一次元と二次元ぐらいです。

 

それ以上の次元は特別なことがない限り使用しないと思います。

 

多次元配列の簡単な説明

 

一次元:一つの建物に合計 10 の部屋があるとする。

  • 5番目の部屋 = 部屋[5]

 

二次元:二つの建物に各 10 の部屋があるとする。

  • 一つ目の建物の五番目の部屋 = 部屋[1][5]

 

三次元:二つの二階建ての建物に各 10 の部屋があるとする。

  • 一つ目の建物の二階の五番目の部屋 = 部屋[1][2][5]

 

上記の説明で多次元配列が大体わかったかと思います。

 

解りにくいという方もいるかと思いますが、まずご自身でコードを書き、実行し、

 

こう書くとどのような結果が出るか?など試してみてください。

 

#include <Array.au3>

 

Dim $week[4][3] = [["月曜日", "火曜日", "水曜日"],["国語", "数学", "数学"],["英語", "国語", "体育"],["英語", "音楽", "自由"]]

 

_ArrayDisplay($week)

 

 

 

上記のコードを実行すると次のような結果になります。
多次元配列を _ArrayDisplay で表示

配列次元の要素数

ここでは配列の要素数を取得する方法を説明します。

 

配列の要素数を取得するには UBound 関数を使用します。

 

UBound 関数は一次元配列の要素数、多次元配列の要素数、さらに配列の次元数を取得することができます。

 

#include <Array.au3>

 

Dim $week[4][3] = [["月曜日", "火曜日", "水曜日"],["国語", "数学", "数学"],["英語", "国語", "体育"],["英語", "音楽", "自由"]]

 

$rows = UBound($week)

 

$cols = UBound($week, 2)

 

$dims = UBound($week, 0)

 

MsgBox(0, $dims & "次元配列", $rows & " 行 " & $cols & " 列")

 

_ArrayDisplay($week)

 

 

 

 

実際に実行して結果を見てみましょう。

配列のサイズ変更

配列を作成し、データを代入するのはいいが、どれだけの要素数が必要なのかわからない場合、

 

キーワード ReDim を使用して配列の調整を行うことができます。

 

#include <Array.au3>

 

Dim $week[4][3] = [["月曜日", "火曜日", "水曜日"],["国語", "数学", "数学"],["英語", "国語", "体育"],["英語", "音楽", "自由"]]

 

ReDim $week[5][3] ; 配列のサイズ変更

 

For $i = 0 To 2
    $week[4][$i] = "美術" ; 新しく作成された要素に"美術"を代入します。
Next

 

_ArrayDisplay($week)

 

 

 

 

結果は次のようになります。
多次元配列を _ArrayDisplay で表示