二次元配列の初期値設定

解決


ビタミン  2003-12-19 00:11:14  No: 110810

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です。


魔界の仮面弁士  2003-12-19 01:08:54  No: 110811

> 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)
のように書く事ができます。


ビタミン  2003-12-19 04:34:14  No: 110812

なぜ3次元配列なのかは分かりませんが、
教えていただいた二次元配列は実装できました。
ありがとうございました。


魔界の仮面弁士  2003-12-19 05:06:32  No: 110813

>>> 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次元配列となりますね。


ビタミン  2003-12-19 09:11:32  No: 110814

なるほど。
(0,0 to 9,9)
はx方向に0〜9と、y方向に0〜9という宣言ではなかったんですね。
勉強になりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加