DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

値を変数名として使うには?

●この件についての経験年数:
3ヶ月

●何が:
VB.NETで

●どうしたいか:
値を変数名として利用したい。

Dim str As String = "hogehoge"

srt(ここで、hogehogeという名前の変数に入れたい) = 100

こんなことができるか分かりませんが、
方法がありましたらお願いいたします。

●あなたが試した解決(対策)法:
VB.NETに関するホームページの過去ログを
”値を変数名として利用する”をキーワードに
いろいろ探してみたのですが、見つかりませんでした。
コレクションを使用してはどうでしょうか?

コレクションには 値(オブジェクト) を指定した Key名(文字列名) と Index番号(整数番号) に登録して管理する機能があります。最初にコレクションオブジェクトを作成し、それに 100 という値を hogehoge というKey名 で add します。コレクションに hogehoge という Key名 を指定してアクセスすると、そのアイテム( 100 という値 )が参照できます。
VBということであればCollectionで全く問題はないのですが、.NETということになると私としてはHashtableクラスをお勧めします。
匿名さん、どぼんさん、ありがとうございます。
コレクションについては、ようやっと理解できたのですが、
Hashtableクラスの利用については、これをどのように利用したら
良いのか悩んでおります。

もうしばらく、悩んでみようと思いますが、
何か、よきアドバイス等ありましたらよろしくお願い致します。
>コレクションについては、ようやっと理解できたのですが、
>Hashtableクラスの利用については、これをどのように利用したら
>良いのか悩んでおります。

Hashtableクラスの使い方はCollectionとほぼおなじです。

Dim h As New Hashtable()
h.Add("hogehoge", 100)
Dim i As Integer
i = h("hogehoge")
どぼんさん、ありがとうございます。
早速、試したところうまく動かすことができました。
ちょっと難しく考えすぎていました。
下記のようなコードを作りました。
今は直接"テンプレートA"と入れてありますが、これをファイル名の変数に
書き換えて使用します。

Dim TempSheet As New Hashtable()

xlBook_Master = xl.Workbooks.Open("C:テンプレートA.xls")

TempSheet.Add("テンプレートA", xlBook_Master.Worksheets("シート名"))

TempSheet("テンプレートA").Name = "Newシート"

DOBON.NET | プログラミング道 | プログラミング掲示板