No.4ベストアンサー
- 回答日時:
#3です。
その後やって見たところ後半は
Sub test03()
Dim d As Variant
d = Array(Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")), Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")))
For k = 0 To 2
For j = 0 To 2
For i = 0 To 2
MsgBox k & " " & j & " " & i & "=" & d(k)(j)(i)
Next i
Next j
Next k
End Sub
で動くことが判りました。VBAですが。
ただ上記はArrayのデータ数が少ないので、(27のうち
12しかないので)エラーで途中で止まりますが、増やせば旨く行くと思います。ご参考まで。
d(k)(j)(i)と表現するところがミソですね。
これが3次元配列なのかどうか判りませんが。
No.3
- 回答日時:
配列の初期化の問題ですね。
このご質問を見て、自分がこんな基本的なことも知らなかったことに愕然と(ちょっとオーバーです)しました。解説書やWEBを調べましたが、私の持っている本やWEBを見た限りでは載っていませんでした。まだズバリ回答は出ていないように思うし、答えを知りたいこともあって、下記を上げてみます。
本当はd(i,j,k)の形で表せると良いのですが、d(i,j)(k)
の形になりますが、下記を実行すると1から27が次々表示されるので、3次元配列的な値の設定と利用に使えると思います。
ただVBAでテストした事も気がかりですが、取りあえずあげて見ます。
Sub test02()
Dim d(2, 2)
d(0, 0) = Array(1, 2, 3)
d(0, 1) = Array(4, 5, 6)
d(0, 2) = Array(7, 8, 9)
d(1, 0) = Array(10, 11, 12)
d(1, 1) = Array(13, 14, 15)
d(1, 2) = Array(16, 17, 18)
d(2, 0) = Array(19, 20, 21)
d(2, 1) = Array(22, 23, 24)
d(2, 2) = Array(25, 26, 27)
For k = 0 To 2
For j = 0 To 2
For i = 0 To 2
MsgBox d(k, j)(i)
Next i
Next j
Next k
End Sub
#1のご回答のようにArrayのネストが可能なら、上記は
回りくどいですね。
Sub test03()
Dim d As Variant
d = Array(Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")), Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")))
For k = 0 To 2
For j = 0 To 2
For i = 0 To 2
MsgBox d(k, j, i)
Next i
Next j
Next k
End Sub
を実行してみるとうまく行きませんでした。
MsgBox d(k, j, i)のところが問題だと思うのですが、小生は力不足で、どう表現するのか判りませんでした。
No.2
- 回答日時:
>2次元配列は以下の様になりますが、3次元配列はどう記述すればいいのでしょうか?
書かれている例、2次元配列ではないのですが。
この例ですと、1次元配列を要素にもつ1次元配列ですけど。
Dim phrase(0 To 1, 0 To 1) As Variant
このような形式で宣言をして初めて2次元配列になります。
No.1
- 回答日時:
Dim phrase As Variant
phrase = Array(Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")), Array(Array("0-0", "0-1", "0-2"), Array("1-0", "1-1", "1-2")))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- Visual Basic(VBA) 型が一致しませんとエラー 6 2023/07/06 20:14
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- その他(応用科学) 遷移元素に関する次の記述のうち正しいものを2つ選べ 1 s軌道が不安定な電子配置 2 s軌道とp軌道 2 2023/07/19 22:04
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- Perl perlで2次元配列をサブルーチンに値渡しで渡す 5 2022/12/17 18:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
順列の作成
-
2次元動的配列の第一引数のみを...
-
VB6 配列を初期化したい
-
エクセルで最小値から0を除く方法
-
for each の現在の配列ポインタ...
-
VBA 1次元配列を2次元に追加する
-
VBのコントロール配列を二次元...
-
配列を任意の数値で埋める方法
-
ListViewで、非表示列って作れ...
-
《エクセル2000》A列・B列の商...
-
Vbscriptで変数の宣言の仕方・...
-
【MATLAB】配列内のある数値の...
-
【VBA】配列とWorksheetFunctio...
-
VLOOKUP関数で、一番下...
-
subの配列引数をoptionalで使う...
-
配列変数の添字が範囲外ですと...
-
matlabにおける行列の格納
-
友愛数を探すプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
for each の現在の配列ポインタ...
-
配列変数の添字が範囲外ですと...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
subの配列引数をoptionalで使う...
-
ListViewで、非表示列って作れ...
-
VB6 配列を初期化したい
-
Excel-VBAの配列「Public Const...
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
verilogで配列の任意の8bitを取...
-
VBのFunctionで、配列を引数...
-
2次元動的配列の第一引数のみを...
-
エクセルで最小値から0を除く方法
-
VBA Match関数の限界
-
Excel VBA配列をFunctionに渡す
-
VB2008: CSV を二次元配列に読...
-
fortranでのcsvファイルの読み込み
おすすめ情報