VBS初心者です。
以下のように、リストを読み込んで動的配列に持たせたいです。
-----------------------------------------------------------------
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)
Set strVal = objFs.OpenTextFile(ReadFile)
' 1行づつ処理
Do While strVal.AtEndOfStream <> True
i = i + 1
ReDim Preserve AryName( i - 1 )
AryName( i - 1 ) = strVal.ReadLine
Loop
End Function
-----------------------------------------------------------------
見て頂くと分かるとおり、動的配列として持たせたい変数名を
Functionの引数として渡しています。(当然のごとくエラー、、、)
Functionの引数として渡した値に動的配列が格納される方法があれば教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
変数をパブリック宣言しておいて
名前ではなく変数そのものを渡してあげれば。
Public AryVal()
GET_FILE = wscript.scriptfullname '"sample.txt"
SET objFs = CreateObject("Scripting.FileSystemObject")
' 動的配列セット
Call Array_Set(AryVal,GET_FILE)
・・・以下は冒頭の質問と同じなので省略しました。
Public AryVal()
完全に忘れてました、、、!!!
思い通りの処理を行うことが出来ましたぁ!
まぢありがとうございますうううううううううううう!!w
No.1
- 回答日時:
あまり詳しくありませんが
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
-----------------------------------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使わずに、変数名を動的...
-
C言語 配列の長さの上限
-
複数の選択範囲の行番号を個別...
-
配列で格納したものをmsgboxで...
-
メモリの初期値
-
配列同士の文字列の比較
-
VB.netでRadioButtonを配列にし...
-
パイソンの
-
2次元配列を戻り値とする関数?
-
FORTRAN77の配列(除算)
-
C# Listを使わずに2次元配列の...
-
ポインタの配列のコンマについて
-
unsigned char配列への入力の仕方
-
VBで構造体の配列を関数に渡す...
-
テキストファイルから文字列を...
-
C# 配列の変数宣言について。
-
テンキーの配列について
-
c++によるジャンケンプログラム
-
Functionの戻り値を2次元配列...
-
char型の配列 char buff[20] = ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 配列の長さの上限
-
配列の参照渡しで型が一致しま...
-
配列を使わずに、変数名を動的...
-
VBで構造体の配列を関数に渡す...
-
配列で格納したものをmsgboxで...
-
unsigned char配列への入力の仕方
-
C# Listを使わずに2次元配列の...
-
C# 配列の変数宣言について。
-
擬似コード 長さがmの配列でな...
-
【速いブラインドタッチ】手を...
-
パイソンの
-
C言語初心者 ポインタについて...
-
ExcelVBAで質問です。離れた二...
-
配列を含む構造体の初期値について
-
複数の選択範囲の行番号を個別...
-
Functionの戻り値を2次元配列...
-
C++ vectorに配列をプッシュしたい
-
先頭アドレスとは何ですか?
-
テキストファイルから文字列を...
-
Redimした動的配列はEraseする...
おすすめ情報