- ベストアンサー
変数に入った値を変数として扱う方法はありますか?
変数に入った値を変数名として扱える関数などはありますでしょうか。 例えば hensu1 = "hensu2" 何か関数(hensu1) = "XYZ" と記述すると 変数「hensu2」に"XYZ"の値が入っているというものです。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
hensu1 = "hensu2" execute hensu1 & "=""" & "XYZ" & """" で、hensu2に"XYZ"が入ります。
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1415)
すみません。最近JavaScriptばかりやってまして、混同してました。 VBSではExecute関数を使います。但し、関数なので、Midのように代入はできません。 以下のように変数に値を設定する関数を自作しては? Sub SetValueToVariable(ByVal Name, ByVal Value) Dim Text Text = Name & "=" Select Case varType(value) Case vbString Text = Text & """" & Replace(Value,"""","""""") & """" Case vbDate Text = Text & "#" & CStr(Value) & "#" Case Else Text = Text & CStr(Value) End Select Execute Text End Sub 使用例 hensu1 = "hensu2" SetValueToVariable hensu1, "XYZ" response.write hensu2 '"XYZ"が出力される
- nda23
- ベストアンサー率54% (777/1415)
プログラム言語は何ですか? VBScriptだと、こんなのがあります。
お礼
言語はASPです。 Eval関数では例えば hensu2 = "XYZ" hensu1 = "hensu2" response.write eval(hensu1) とすると、"XYZ"という値が帰ってくると思いますが 今回は hensu1 = "XYZ" hensu2 = "hensu1" ?関数(hensu2) = 特殊関数(eval(hensu2)) response.write eval(hensu1) で"XYZ"という値が帰ってくるようにしたいのです。 最初からhensu1に"XYZ"を入れているじゃないかと指摘されると思いますが、実際にはhensu2というのはテーブルのフィールド名をループでひたすら取得する部分でhensu1というのもDBのテーブルのフィールド名にも存在しているものとします。 自動でDBのフィールド名を取得し、同名の変数(hensu1)の値に特殊な関数をかけて再びhensu1に戻すという事を行いたいのです。 そのために「?関数(hensu2)」は hensu1 と記述している事と同じ事になる関数がないか探しています。 少々質問するのも難しい内容ですが宜しくお願い致します。
お礼
返信がかなり遅れて申し訳ございません。 おお!!すごいです。まさにコレです。 いったいどこからこんな知識を仕入れていらっしゃるのか不思議です。 本当に有難う御座いました!!