• ベストアンサー

変数に入った値を変数として扱う方法はありますか?

変数に入った値を変数名として扱える関数などはありますでしょうか。 例えば hensu1 = "hensu2" 何か関数(hensu1) = "XYZ" と記述すると 変数「hensu2」に"XYZ"の値が入っているというものです。 宜しくお願い致します。

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

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.3

hensu1 = "hensu2" execute hensu1 & "=""" & "XYZ" & """" で、hensu2に"XYZ"が入ります。

gogojets
質問者

お礼

返信がかなり遅れて申し訳ございません。 おお!!すごいです。まさにコレです。 いったいどこからこんな知識を仕入れていらっしゃるのか不思議です。 本当に有難う御座いました!!

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

すみません。最近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)
回答No.1

プログラム言語は何ですか? VBScriptだと、こんなのがあります。

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/vsfcteval.asp
gogojets
質問者

お礼

言語は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 と記述している事と同じ事になる関数がないか探しています。 少々質問するのも難しい内容ですが宜しくお願い致します。

関連するQ&A

  • 変数に入った値を変数として扱うことはできますか?

    VBスクリプトで自動で作成した値を変数に変化したいのですが、可能なのでしょうか? 例えば hensu = "5" ~DBのテーブルからフィールド名"hensu"を抜き出し、変数"field_set"に入れる。~ OpenField = OpenField & field_set& "=""&"& field_set&"&""" sql = "update test_table set" sql = sql &" "& OpenField sql = sql & "where scode = '" & scode & "'" という感じにしたいのですが、当然"field_set"には"5"ではなく"hensu"というフィールド名の文字列が入ります そもそも変数に入れた値を変数に変換する事って可能なのでしょうか? 宜しくお願い致します。

  • グローバルな変数を変数名を指定せずに変更することができるか?

    <script> g_hensu1 = "変数1"; g_hensu2 = "変数2"; g_hensu3 = "変数3"; g_hensu4 = "変数4"; g_hensu5 = "変数5";  ・  ・ 上記のようにhtml上に定義されている変数を 変数名を指定せずに変更できないでしょうか? 例えばHenkoという関数があり、 Henko(g_hensu1, g_hensu2, g_hensu3); とすると、g_hensu1~3の変数の値を空文字列にするという関数は どのような方法が考えられるでしょうか?

  • 同じ名前の変数…

    数日前からPHPをはじめた者です。 クラス変数(という呼び方が適切かは??)と、その変数に値をセット/ゲットする関数を内包するクラスを作ってみたのですが、それに関してどうもピンと来ない部分があるので質問させてください。 以下がソースです。 class sample{ var $hensu; function set_hensu($str){ $hensu = $str; } function get_hensu(){ return $hensu; } } 上記クラスを使って値のセット/ゲットをしようとしたのですが、結果は×でした。 ファンクション内の変数を、thisで指定するとうまく行きました。 最初に指定した変数と、ファンクション内の変数を同一のものだと認識させるには、ファンクション内でのthis指定の他に方法は無いのでしょうか? もしくは、ファンクション内で書いた変数が新しい変数だと認識させない方法とか…。 無いなら諦めます。よろしくお願いします。 また、直接質問とは関係ないのですが、 どうしてPHPは変数名を書いただけで変数が作られてしまうのでしょう。メリットは何ですか? 分かりづらくて戸惑ってます。

    • ベストアンサー
    • PHP
  • 変数文字の中に変数を入れたい

    初心者です。宜しく御願いします。 java sprictで文字列の中に変数名を入れたいのですが、 可能でしょうか? 例えば、PHPとかですと、変数の前に「$」があるので、 $hensu1="5"; ${hensu.$hensu}="dekirukana";←このような表現がしたいのです。 echo $hensu5; のような(上のプログラムが動くかどうかは別として)表現が可能かどうかが知りたいのです。 for文などで、一度に多くの変数に値を入れたいのですが、 どうあがいてもできません。わかりません。 どなたか救いの手をお願いします。

  • Flash 変数宣言

    これまた超基本的な事ですが、 Flash(AS3)で変数宣言をする際の記述方法について質問させてください。 現在自分がやっている方法では、変数宣言する際 --------------------------------------------------------- var hensu:String = "あいうえお"; --------------------------------------------------------- としていて、これを例えばrootから ムービークリップ「mc」内に変数「hensu」を作る場合 --------------------------------------------------------- mc.hensu = "あいうえお"; --------------------------------------------------------- としています。これで特に問題ないのですが、 値を何も入れず、とりあえず変数だけ用意しておく場合、 rootに変数を作る時は --------------------------------------------------------- var hensu:String = new String(); --------------------------------------------------------- としています。また、 --------------------------------------------------------- var hensu:String; --------------------------------------------------------- だけでも、変数が作成されているよう?なのですが・・・ trace()で調べると new String()の場合は値が"空白"(何も表示されない) hensu:String;の場合は"null"になります。 という事はどちらの場合でも単純に変数だけ作るのであれば これで機能していると考えてもよいのでしょうか? この"空白"と"null"の違いを理解したいです。 また、rootからムービークリップ「mc」内に変数「hensu」を作る場合として、 --------------------------------------------------------- mc.hensu = new String(); --------------------------------------------------------- とすれば、大丈夫ですが --------------------------------------------------------- mc.hensu:String = new String(); --------------------------------------------------------- や --------------------------------------------------------- mc.hensu:String; --------------------------------------------------------- ではエラーが出ます。 root上に変数を作る時の --------------------------------------------------------- var hensu:String = new String(); --------------------------------------------------------- や、別の場所に変数を作る場合でも --------------------------------------------------------- mc.hensu = new String(); --------------------------------------------------------- では問題ないのに、 ●●●.変数:型 = new 型(); の形にするとエラーが出るのはなぜなのでしょうか? (記述方法が間違っているといわれればそれまでですが・・・)

  • Access-VBAのPublic変数について =基本的な事です=

    フォームAのテキストボックスに入力された値をフォームBで使用したいのですが、調べるとPublic変数に値を代入しておけばフォームAを閉じても値を保持できるとの事でした。 そこで、 (1) 標準モジュール(My_Moduleという名前)を作成しそこに1行Public Hensu as Long と定義しました。 (2) フォームAにボタンを作成し、そのクリックイベントに、 Hensu=Text1.Value というコードを記述しました。 (3) フォームBにボタンを作成し、そのクリックイベントに、 Text1.Value=Hensu というコードを記述しました。 フォームBのボタンをクリックすると、Text1に値が代入されるかと思いましたが、意に反しHensuの中身はNullでした。 どのようにすればフォームBで変数の値を取得することが出来るのでしょうか? ちなみにフォームAからPublic Hensuには値が代入されているようで、イミディトウインドウで?Hensuとするとちゃんと代入された値が表示されます。

  • 一番大きな値を返す

    はじめまして。ExcelVBAで「一番大きな値を持つ変数名を返す」として質問致します。 タイトルは「…値を返す」としましたが、実は「…値を持つ変数名を返す」なのです。以下に要点を記します。 例えば… Sub mySub() Dim my1,my2,my3,myMax '全てInteger型です。 my1=1 my2=2 my3=3 myMax=Application.WorksheetFunction.Max(my1,my2,my3) MsgBox=myMax End Sub 上の記述ですと、MsgBox に渡される値は my3 に格納されている 3 となりますが、Max値である 3 の値が格納されている変数名my3 を MsgBox に表示させるためには、どのような考え方があるでしょうか? If や Select Case などでコツコツと条件分岐をさせて導き出すしか方法はありませんか? コードが短くなるように何らかの関数を用いる手法があれば嬉しいのですが…ご教示の程、よろしくお願い致します。

  • VB6で、変数の値を別ファイルの変数に引き継ぎたい

    AというVBのソースファイル(.frm)内に関数の呼び元があり、 その関数がBというファイルにあります。 その関数内で値が設定される変数を、Bファイルのグローバル変数とし、 また、Aファイルのグローバル変数として同じ名前の変数を宣言したとしても、 やはりB内で関数の実行が終了し、Aに戻った際には、変数は別のものとみなされている ようで、B内関数で設定された値がAファイル内での同名変数に引き継がれません。 どのようにすればよろしいでしょうか? ご存知の方、お願いします。

  • 変数名の付け方

    変数名の前にアンダーバー「_」をつけて「_hensu」などどしている変数名がありますが、このアンダーバーはどんな意味があるのでしょうか。 昔からある何かの習慣なのでしょうか。

    • ベストアンサー
    • Java
  • 変数名の取得

    Dim Hensu(5) AS String とあった場合、 この変数名の "Hensu" を取得することは できないものでしょうか? よろしくお願いします。

専門家に質問してみよう