[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/08/12(Thu) 15:06
投稿者名:おさるさん
Eメール:
URL :
タイトル:
動的配列について
いつも参考にさせていただいています。
早速ですが、動的配列について質問させて頂きます。

2次元配列をループで次々と増やしていきたいのですがうまくいきません。
以下のロジックを考えたのですが…

Private Hairetu() As String

For i = 0 To 10

    ReDim Preserve Haiuretu(i, 1)
    Haiuretu(i,0)="あ"
    Haiuretu(i,1)="い"

Next
ちなみにiは今回は10という定数にしましたが、本来は未知数です。
Preserveを無くすと、ループするごとに再初期化してしまって、
配列は増えていくのですが、以前の値が消えていってしまいます。
以前の値を保持しつつ、配列を増やしていくのは無理なんでしょうか?
色々調べたり、実行したりしてもうまくいかないので、このように質問させて頂きました。
よろしくお願い致します。




投稿時間:2004/08/12(Thu) 15:48
投稿者名:よろずや
URL :
タイトル:
Re: 動的配列について
> Private Hairetu() As String
>
> For i = 0 To 10
>
  '   ReDim Preserve Haiuretu(i, 1)
  '   Preserve で変更できるのは末尾の次元のみ
      ReDim Preserve Haiuretu(1, i)
      Haiuretu(0,i)="あ"
      Haiuretu(1,i)="い"
>
> Next

投稿時間:2004/08/12(Thu) 16:05
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^2: 動的配列について
よろずや様ありがとうございました。
よろずや様のおっしゃるようにしたらできました。
末尾の次元と言う言葉の意味がやっと分かりました!
本当にありがとうございました。

投稿時間:2004/08/12(Thu) 15:55
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re: 動的配列について
> 色々調べたり、実行したりしてもうまくいかないので、このように質問させて頂きました。

ヘルプに書いてあります。

 次元が 2 つ以上ある動的配列の場合、最後の次元のサイズのみを変更でき、
 その配列に格納されている値は保持されます。
 ただし、ほかの次元の大きさは変更できません。

今回の場合、1が固定なら

    ReDim Preserve Haiuretu(1, i)

とすれば出来ます。

投稿時間:2004/08/12(Thu) 16:11
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^2: 動的配列について
ななし様さっそくのご返事ありがとうございます。
確かにヘルプに書いあったのですが、
「最後の次元のサイズのみを変更でき…」と書いてはあったのですが、
ReDim Preserve Haiuretu(1, i)と言う連想が全然でなかったもので、
今回質問させて頂きました。

自分の考えが足らなかったようです。
申し訳ございませんでした。
以後気をつけたいと思います。
お答え頂き、誠にありがとうございました。