web-dev-qa-db-ja.com

VBAフォームのラベルキャプションを動的に更新する方法は?

ワークシートに保存されている値に基づいて、ラベルの配列(VBAフォーム内)のキャプションを動的に設定したい。これまでのところ、次のように1つずつ設定できます。

Label1.Caption = MySheet.Range("A1").Value
Label2.Caption = MySheet.Range("B1").Value
Label3.Caption = MySheet.Range("C1").Value ...

繰り返しパターンに従うラベルがたくさんあるので、次のようなもっとスマートなものを使いたいです。

'Method1
For i = 1 To X
    Dim MyLabel as Object: Set MyLabel = "Label" & i
    MyLabel.Caption = MySheet.Cells(i + 1, i).Value
Next i
'Method2
For i = 1 To X
    Label(i).Caption = MySheet.Cells(i + 1, i).Value
Next I
'Both Methods failed. I really appreciate some feedback on this.
6
Takedasama

Controlsオブジェクトを使用

For i = 1 To X
    Controls("Label" & i).Caption =  MySheet.Cells(i + 1, i).Value
Next
14
Siddharth Rout

VBAでこれを使用する場合:

For i = 1 To X
    UserForm1.Controls("Label" & i).Caption =  MySheet.Cells(i + 1, i).Value
Next
3
Ahmet Toka