• ベストアンサー

コンポーネント名を変数で指定

VBにてプログラムを作っているのですが、コンポーネント名を変数にて指定するにはどのようにしたらいいでしょうか? 具体的には、整数型の変数iがあったときに、 i=1ならPictureBox1 i=2ならPictureBox2 … といった感じに指定したいのですが、やり方がどうしてもわかりません。 If文で一つずつ指定する方法しかないのでしょうか?

  • myr
  • お礼率91% (95/104)

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

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.3

.NETでしたか・・・ が、.NETでもコントロール配列は実装できるので、そちらで行うか、 Controlsで行うか・・・ どちらかの方法が簡単でしょうね。

myr
質問者

お礼

コントロール配列 で検索して調べたところ、大変分かりやすいサイトを見つけることができましたので、無事に解決いたしました。 回答していただけなかったら「コントロール配列」という言葉自体出てこなかったのでずっと分からなかったかもしれません(汗)。 回答ありがとうございました。 参考にしたサイト: http://jeanne.wankuma.com/

その他の回答 (2)

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

解発環境が.NET系でなければ、コントロール配列という手もありますね。

myr
質問者

お礼

回答ありがとうございます。 すみません、書き忘れていましたが、VB.NETで開発しています(汗)

回答No.1

'===========ヒント(VBA)=============== 'UserFormにCommandButton1を貼り付けた状態 Option Explicit Private Sub UserForm_Click() Me.Controls("CommandButton1").Caption = "ほげ" '文字列"CommandButton1"でコントロールを参照できる End Sub

関連するQ&A

  • [delphi] 変数を利用してコンポーネント名指定したいのですが、可能でしょうか?

    表題の件、どなたか教えてください。 「可能」か「不可能」かの情報や代替案でもありがたいです。 ※delphi6 enterprise版を使用しています。 質問 コンポーネント名の指定に変数は使えるのでしょうか? 例えば、labelコンポーネントを複数設置しそのlabel名の末尾を数字にする(label1,2,3・・・)。何かの処理の際に、for文で変数を送り(i=1,2,3・・・)、label名+変数.captionなどという形で指定することはできるでしょうか? 例 ラベル名 label1 label2 label3 を設置 ボタンクリック時などに、 var i : integer; for i := 1 to 3 do begin   label(i).caption := inttostr(i) ; end; よろしくお願いします。

  • 変数名を変数で指定するのに$_POST[

    http://oshiete1.goo.ne.jp/qa2691790.html の#1さんに,変数名を変数で指定できることを教わりました. 下記の3行目のように,です. for ($i=1;$i<=5;++$i){ if (${"var".$i}=="") { ${"errMsg".$i}=$i."が未入力"; } } ここで, (1) $_POST["form"] には「str」という文字列が入っています. (2) $Var には「10」という数値が入っています. (3) これらを結合し, どうしても $_POST["str10"] みたいな変数を作らなければならないのですが, ・<? echo $_POST["str" . $Var]; ?>では何も起こらず. ・<? echo $_POST[{"str" . $Var}]; ?>などと{}で括っても, Parse error: parse error, unexpected '{', expecting ']' in C:\temp.php on line 10. みたいなエラーになります. どういうのが正しい書き方でしょうか?

    • 締切済み
    • PHP
  • C#でフォームのオブジェクト名を変数名で指定

    C#でフォームのオブジェクトを変数名で指定するにはどうしたらよいでしょうか? 例えば、フォームにラジオボタンrdo0~rdo9と、 それぞれに対応するテキストボックスtxt0~txt9が用意されている状態で、 rdo1がチェックされていたらtxt1に"OK"と表示、 rdo2がチェックされていたらtxt2に"OK"と表示・・・ といったことをfor文で実現する場合どのようにしたらよいでしょうか? 変数をオブジェクト名として認識させるための方法がわかりません。 どなたかご教授願います。 ********************************************* for(int i=0;i<10;i++) {  rdoname = "rdo" + i;  txtname = "txt" + i;  if((何らかの処理?)(rdoname).checked)   (何らかの処理?)(txtname).txt = "OK"; } **************************************** ↑この、オブジェクトとして認識する為の「何らかの処理」部がわかりません。

  • 変数名

    変数名を $abc1 $abc2・・・・ 繰り返し文などで生成することは可能でしょうか? そして、変数に値を代入したいのですが・・・。 if(a==true){$abc1 = "OK"} if(a==true){$abc2 = "OK"} if(a==true){$abc3 = "OK"}      ・      ・      ・      ・      ・      ・ このような文は繰り返し文では無理ですか??

    • 締切済み
    • PHP
  • ファイル名を変数に取り込む方法について

    vbを使った例を教えてください。 ある指定されたフォルダーに複数のファイルがあるとして、 そのファイル名を変数に順番に取り込むプログラムの 参考がありましたら教えてください。 尚、プログラムでは、取り込んだ後に別の処理があり、 それが終了後にまた次のファイル名を取り込むような ステップを組む予定にしています。 こんな質問でご理解頂けますでしょうか? 宜しくお願い致します。

  • 変数名

    以下のような変数があります。 test01 test02 test03 . . . 01の数字部分を↓のような感じにはできないのでしょうか? for(i = 0; i < 10; i++){ if(test + i == 0){} }

    • ベストアンサー
    • Java
  • pictureboxの名前を変数で設定したい

    form1に100個のpicturbox(picturebox1~picturebox100)が乱雑に貼り付けられていて pictuteboxのleftとtopをプログラムで指定したいのですが picturboxの名前を変数でとるにはどうしたらよいでしょうか。 (処理に内容で配置が変わるため変更したい) 下記では上手くできませんでした。 for i=1 to 100 Dim pic As PictureBox = Me.Controls("PictureBox" & i).left=xx(i) next 環境 windows 7 Microsoft Visual 2010 express

  • 配列を使わずに、変数名を動的にループで回したい

    配列を使わずに、変数名を動的にループで回したい 大学の課題をやっている途中に思ったことなのですが……。 プログラム中に同じ型の変数p1,p2,p3があり、それぞれの変数にループで同じ処理を施したいと思っています。 しかし、「p(i)」や「("p" + i)」などと、変数どうしを別のものとして認識させようとしても、コンパイラから警告が出て上手くいきません。 配列を使えば、このような処理が出来ることはわかるのですが、使う変数名を指定されてしまっているために、今回は配列を使えません。 出来るか出来ないか、出来る場合は方法を知りたいです。 後、今回はC言語のプログラムで利用出来るかが自分にとっての問題なのですが、C言語以外のこのプログラミング言語なら出来る、とかの情報もこの機会に知りたいです。 お答え出来る範囲でいいので、もしよければ回答お願いします。

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

    <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の変数の値を空文字列にするという関数は どのような方法が考えられるでしょうか?

  • 変数名をプログラムで変える

    変数名$keyにある数字を一文字ずつ$w1、$w2・・・に入れていきたいと考えています。 if (isset($key)){ for($i=1;$i<strlen($key);$i++){ $w[$i]=substr($key,$i-1,1); } 変数w1、w2をfor文の中で変化させていきたいのですが、どのようにすればいいのでしょうか。 上記の$w[$i]ではだめでした。(配列になっちゃうのかな) 例えば$key=5432の場合、 $w1=5; $w2=4; $w3=3; $w4=2; としたいのです。 よろしくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう