Dim table ( 0,0 to 9,9 )
という風に10*10の二次元配列を設定したのですが、初期値を一度に設定する方法が分かりません。
table(0,0) = 1
:
:
table(9,9) = 100
という風に一つずつ格納するしかないのでしょうか?
C言語なら
table[0][] = { 0,1,2,3,4,5,6,7,8,9 }
という風にできるのですが、Visual Basicでもできるのでしょうか?
環境はVB6.0です。
> Dim table ( 0,0 to 9,9 )
> という風に10*10の二次元配列を設定したのですが、
それは2次元配列ではなく、「3次元配列」ですよ。
> C言語なら
> table[0][] = { 0,1,2,3,4,5,6,7,8,9 }
> という風にできるのですが、
いわゆる「ジャグ配列」の形式でも構わないなら、
Dim table(1, 2) As Variant
table(0, 0) = "0-0"
table(0, 1) = "0-1"
table(0, 2) = "0-2"
table(1, 0) = "1-0"
table(1, 1) = "1-1"
table(1, 2) = "1-2"
MsgBox table(0, 2)
の替わりに、
Dim table(1) As Variant
table(0) = Array("0-0", "0-1", "0-2")
table(1) = Array("1-0", "1-1", "1-2")
MsgBox table(0)(2)
のように書く事ができます。
なぜ3次元配列なのかは分かりませんが、
教えていただいた二次元配列は実装できました。
ありがとうございました。
>>> Dim table ( 0,0 to 9,9 )
>>> という風に10*10の二次元配列を設定したのですが、
>> それは2次元配列ではなく、「3次元配列」ですよ。
> なぜ3次元配列なのかは分かりませんが、
括弧内にカンマが2個あれば、3次元配列です。
2次元配列なら、カンマは1個だけとなります。
先の「Dim table ( 0,0 to 9,9 )」という宣言では、
1次元目: 下限値0、上限値0
2次元目: 下限値0、上限値9
3次元目: 下限値0、上限値9
という「1×10×10」の3次元配列となりますね。
なるほど。
(0,0 to 9,9)
はx方向に0〜9と、y方向に0〜9という宣言ではなかったんですね。
勉強になりました。
ツイート | ![]() |