(VB6.0)オブジェクト名に変数を使うには?

解決


sui  2005-02-23 16:37:09  No: 119862  IP: [192.*.*.*]

はじめまして。
早速ですが、質問です。
本当はもっと複雑なソースなのですが、要点だけ抜粋します。

For a = 1 To 5
Image(a).Picture = LoadPicture("ファイル名")
Next a

このように変数を使って「Image1」〜「Image5」までの画像を表示させたいのですが、
何か良い方法はありますでしょうか。

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200405/04050098.txt
検索してこの記事を読んでみたのですが、
理解不足なのか解決することができませんでした。

どなたかもう少し詳しく教えて頂けないでしょうか。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2005-02-23 16:53:59  No: 119863  IP: [192.*.*.*]

VB6なら、コントロール配列にした方が良いかも知れません。

それらのImageには、同じ名前(たとえば、Image1)をつけておき、
それぞれのIndexプロパティにだけ、異なる数字(0, 1, 2, ……)を入れます。

そうすると、
  Dim a As Long
  For a = 0 To 4
      Set Image1(a).Picture = LoadPicture("ファイル名")
  Next
もしくは、
  Dim Img As Image
  For Each Img In Image1
      Set Img.Picture = LoadPicture("ファイル名")
  Next
などのようにして処理できるようになります。



もし、コントロール配列にできない事情があるなら、
  For a = 1 To 5
     Controls("Image" & CStr(a)).Picture = LoadPicture("ファイル名")
  Next
のような書き方も可能です。

編集 削除
sui  2005-02-23 17:03:26  No: 119864  IP: [192.*.*.*]

魔界の仮面弁士さま
素早いご解答ありがとうございます。
二つ目の方法で無事解決することができました。
どうもありがとうございました。

編集 削除