引数の数を確定しない値を配列をして渡すには?

解決


かたのるめ  2003-10-09 11:32:11  No: 109036  IP: [192.*.*.*]

現在不特定多数のファイル名を配列に渡しています。しかし、配列の数を指定しない方法をとりたいのですが、どのようにしたらよいでしょうか?
Dim File(9999) as string → Dim File(n) as string?????
宜しくお願いいたします。

編集 削除
とろ  2003-10-09 11:46:49  No: 109037  IP: [192.*.*.*]

Dim File(9999) as string → Dim File() As String
でよいのでは?

処理中に配列の要素数が変動するたびに
Redim File(n)
とすれば大丈夫です。

編集 削除
そる  2003-10-09 11:46:53  No: 109038  IP: [192.*.*.*]

定義
  Dim File()  As Strng
使う時
  Redim Preserve File(10)
  または
  Redim File(10)

編集 削除
しーぶ  2003-10-09 11:55:59  No: 109039  IP: [192.*.*.*]

お返事ありがとうございます。
教えていただいた方法ですと、
Redimによって今まで入力された配列が消えてしまいました。
つまり、
For i to MAX
  MAX=MAX+1
  Redim(MAX)

編集 削除
si-bu  2003-10-09 11:56:19  No: 109040  IP: [192.*.*.*]

お返事ありがとうございます。
教えていただいた方法ですと、
Redimによって今まで入力された配列が消えてしまいました。
つまり、
For i to MAX
  MAX=MAX+1
  Redim(MAX)

編集 削除
かたのるめ  2003-10-09 11:58:04  No: 109041  IP: [192.*.*.*]

送ってしまった。。。しかも他の方の名前で。。。申し訳ありません。

お返事ありがとうございます。
教えていただいた方法ですと、
Redimによって今まで入力された配列が消えてしまいました。
つまり、
For i to MAX
  MAX=MAX+1
  Redim File(MAX)
  File(MAX) = data
Next
どのようにしたらよいですか?

編集 削除
イトウ  2003-10-09 12:18:08  No: 109042  IP: [192.*.*.*]

多少はRedimのMSDNヘルプも見ましょう。

Redim Preserve File(MAX)

編集 削除
 2003-10-09 12:47:00  No: 109043  IP: [192.*.*.*]

「つまり」の使い方が変です。

編集 削除
かたのるめ  2003-10-09 16:24:00  No: 109044  IP: [192.*.*.*]

みなさまありがとうございました。
特に、せさん。
つまり、あなたに感謝。

編集 削除
Y2  2003-10-09 22:04:08  No: 109045  IP: [192.*.*.*]

RedimはRedimでも、Preserveをつけると、配列の要素数が変化する前の情報が失われないってことですね。
でも、可変の配列は多少効率が悪いらしいので、
あらかじめ多めに要素数を確保した固定の配列を、可変と同じように使う方法もありますよ。状況によって使い分けるといいと思います。

編集 削除
かたのるめ  2003-10-10 10:24:52  No: 109046  IP: [192.*.*.*]

Y2さんありがとうございました。
参考になります。

編集 削除