ワークシートに保存されている値に基づいて、ラベルの配列(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.
Controls
オブジェクトを使用
For i = 1 To X
Controls("Label" & i).Caption = MySheet.Cells(i + 1, i).Value
Next
VBAでこれを使用する場合:
For i = 1 To X
UserForm1.Controls("Label" & i).Caption = MySheet.Cells(i + 1, i).Value
Next