- ベストアンサー
[VBS] 動的配列について教えてください!
- VBS初心者です。リストを読み込んで動的配列に持たせたい方法について教えてください。
- 動的配列の作成方法や引数として渡す方法などについて詳しく教えてください。
- どのようなエラーが発生しているのか詳細を教えていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変数をパブリック宣言しておいて 名前ではなく変数そのものを渡してあげれば。 Public AryVal() GET_FILE = wscript.scriptfullname '"sample.txt" SET objFs = CreateObject("Scripting.FileSystemObject") ' 動的配列セット Call Array_Set(AryVal,GET_FILE) ・・・以下は冒頭の質問と同じなので省略しました。
その他の回答 (1)
- denbee
- ベストアンサー率28% (192/671)
あまり詳しくありませんが Call Array_Set("AryVal",GET_FILE) の第一引数は単なる文字列ですから、呼び出し側で配列を定義して、 その配列名を直接入れればいいと思いますが。
お礼
Execute関数を利用すると、引数で渡した文字列に値が格納される事が出来ましたが Callを抜けるとと、配列が空になってしまいます、、、。 初歩的な事かもしれませんが、引き続きご教示頂ければと思います。 ----------------------------------------------------------------- GET_FILE = "sample.txt" SET objFs = CreateObject("Scripting.FileSystemObject") ' 動的配列セット Call Array_Set("AryVal",GET_FILE) ' 表示 For i = 0 To Ubound(AryVal) msgbox AryVal(i) Next ' 終了 WScript.Quit 0 Function Array_Set(AryName,ReadFile) ' 動的配列宣言 Execute(" Dim " & AryName & "()" ) Set strVal = objFs.OpenTextFile(ReadFile) ' 1行づつ処理 Do While strVal.AtEndOfStream <> True i = i + 1 Execute(" ReDim Preserve " & AryName & "(" & i - 1 & ")" ) Execute( AryName & "(" & i - 1 & ") = strVal.ReadLine " ) Loop End Function -----------------------------------------------------------------
お礼
Public AryVal() 完全に忘れてました、、、!!! 思い通りの処理を行うことが出来ましたぁ! まぢありがとうございますうううううううううううう!!w