VBAの質問です。combobox に、調査対象一覧1 という名前をあたえて あるプロシージャで、call xxx(調査対象一覧1)として使っています。combobox に 調査対象一覧2 という名前を与えたときに、t=2 call xxx("調査対象一覧" & t)のように、して、調査対象一覧2 を送り込みたいのですが、可能なのでしょうか? perl や PHP では、$$変数名 という形で変数名の変数のようなことができます。同様のことはVBAでも可能なのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/11/15 12:36:29
  • 終了:2009/11/22 12:40:03

回答(2件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/11/15 13:06:20

ポイント35pt

もちろん可能です。

ここでは、「調査対象一覧1」は文字列です。

xxx()という関数は引数で文字列を渡しているということになります。

xxx("調査対象一覧" & t)では仮にtが数値であっても、

「"調査対象一覧" & t」で「&」で連結することで全体が文字列となります。

このようにVBAでは型においては柔軟な部分があります。

http://q.hatena.ne.jp/

id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/11/15 13:06:52

ポイント35pt

一例(AccessVBA)

Private Sub コマンド1_Click()
  t = 2
  Call xxx("調査対象一覧" & t)
End Sub

Private Sub xxx(a As String)
  MsgBox (Me(a).Value)
End Sub

(かっこ)で囲めば、その中の値に該当するオブジェクトを指定した事になります。

上記では変数を使いましたが("文字列")でも構いません。


※Me は現在対象としているオブジェクトを暗黙的に示すものです。

特定のFormなどが対象の場合は適宜指定するようにします。

http://q.hatena.ne.jp/ダミー

id:kaiketsu

なるほど

2009/11/15 13:40:39
  • id:SALINGER
    すいません。私の回答は質問を読み間違えたのでオープンしなくてけっこうです。
  • id:kn1967
    ※AccessVBAと書きましたが、これを書いたのがAccessだからというだけの理由です。
     言語仕様は他のアプリケーション用VBAでも同じです。
  • id:SALINGER
    因みに、Comboboxが貼られたのがユーザーフォームではなく、シート上の場合は、
    ActiveSheet.Shapes(a).Value
    のようにして呼び出すことになります。
  • id:horosco75
    > 言語仕様は他のアプリケーション用VBAでも同じです。

    え?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません