• ベストアンサー

array の使い方

VBで作業しています。VB6ではありません。 array 関数でサンプルプログラムなどをみているとよく、 test=array("りんご","バナナ","らっきょ")などとあります。このりんご、バナナにあたる部分がもし 数、文字 が毎回かわるデータを取得してきたい場合どうすればいいのでしょうか? test=array(??????どうすれば?? うまく説明しづらいのですが、XSIという3Dソフトのスクリプトで ダイアログボックスを表示する際に、そのダイアログの選択肢をarrayで中身を記入しなければいけません。しかし、その選択肢が常に変化しているパラメータなのであらかじめ array内に決定しておくことができないのです。すみません、、わかりづらいかもしれませんがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

まず「VB」というのはVBA、VB6、VB.NET、VBスクリプトといろいろあるのですが、VB6ではなく何でしょうか? そのソフトの専用言語だったりもしますよね。 たぶんVBスクリプト?かVBA?のような物と想像します。 > test=array("りんご","バナナ","らっきょ") は、コンパイルエラーにならないんですよね? VBスクリプトはあまり使ったことが無く、間違うかもしれません。すみません。先に謝ります(笑) 時により変わるにしてもセットするものの数は分かりますよね? 分かれば ReDim test(表示するものの数 - 1) test(0) = 選択肢1 test(1) = 選択肢2 ・・・ test(表示するものの数 - 1) と並べればできます。 そもそも表示するものに値するものが配列に入っていたりコレクションだったりすれば並べなくてもFor文でまわせます。 paras : 選択肢を持つオブジェクトコレクション ReDim test(表示するものの数 - 1) For i = 1 To paras.Count test(i-1) = paras.Item(i).Value Next とか paras() : 選択肢を持つ構造体などが入った配列 ReDim test(表示するものの数 - 1) For i = 0 To 表示するものの数 - 1 test(i) = paras(i).表示する値 Next 長々と書きましたが、そのリストボックスに表示すべきものをどういう形で保持しているのかが分からないと的確な回答ができないですね。 上の説明で何か進めますか?

unityoro
質問者

お礼

すみません ここにもういっか状況書きます。 細かくいうと まず 3Dソフトで 人間の骨組みをつくりその 骨にポーズを つける作業をするのですが、そのときに ポーズを登録しているパラメータがあります。そのぶぶんを 結局コンボボックスに表示させたいのです。つまり ポーズを追加していけば どんどん数も増え、そのつどポーズに名前を付けるので名前も変化します。 そこの値をもとめるのに、このソフトのマニュアルにサンプルがのっていまして、それが ↓です。 set oRoot = ActiveProject.ActiveScene.Root LogMessage "Number of sources : " & oRoot.Sources.Count For Each oSrc In oRoot.Sources LogMessage oSrc.Name Next これで そのパラメータがいくつで、名前は何かをもとめれるのですが、それを arrayに組み込みたかったのです。 すみません まだうまく説明できません・・

unityoro
質問者

補足

ありがとうございます。VBスクリプトでした。すみません。書いていただいたリストにはparas とかredimとか 見たことないのがありますね。。これはVBスクリプトですか?ちょっとさっそく組み込んで実験してみます。私の日本語の説明がうまくないですよね。(日本人です笑) インターネットで検索しても VBスクリプト ではなく VB.netとかvb6ばっかりで 結局使えなかったりするんです。その3DソフトはVBスクリプトかJスクリプトしか認識しないので・・・。

その他の回答 (1)

回答No.1

質問内容がよく分らないのでなんともいえませんが・・・ 単に test = array("りんご","バナナ","らっきょ") A = test(0) 'Aの中身はりんご この「A」もしくは「test(0)」をダイアログボックス表示関数のパラメータにしたらいいだけだと思うんですが。

unityoro
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう