1

ラベルを含むユーザー フォームがあります。(下にある画像を見て正しい場所に配置することしかできないため、各ラベルを手動で作成する必要があります。) 各ラベルは、外観を設定/再設定する同じ「初期化」機能を実行する必要があります。これにより、次のようになります。

 dummy = Initialize(UserForm1.Lable1)

 dummy = Initialize(UserForm1.Lable2)

 dummy = Initialize(UserForm1.Lable3)

 .

 .

 .

私のコードの名前はより説明的であり、ラベルの実際の名前は Excel シートの列に保存されています。したがって、その列を通過する for ループを作成し、次のように「.Lable#」を「.(列からの名前)」に置き換えたいと思います。

 For i = 1 to 10

   dummy.Initialize(UserForm1.ThisWorkbook.Sheets("Sheet1").Cells(i,2))

 Next i

セルの値が文字列であるため、上記のコードは当然機能しません。したがって、その文字列をオブジェクト メソッド名に変換する方法が必要です。何か案は?

これが何らかの意味を持ち、これが可能であることを願っています。

御時間ありがとうございます、

マーヴィン

(私はインターネットから VBA について知っていることをすべて学んだので、おそらく見栄えの悪いコードがいくつかあります。改善のための提案は大歓迎です)。

4

1 に答える 1

0

フォーム コントロールの場合は、Controlsメソッドを使用します。これは、単独で、またはループ内で使用できます。

for i=1 to 5
    frmUserForm.Controls("Label" & i).Enabled = True
next i

それは理にかなっていますか?

于 2013-06-19T21:03:45.123 に答える