タイトル : Re: プロパティをループで回す方法 投稿日 : 2018/08/02(Thu) 16:29 投稿者 : 魔界の仮面弁士
> あるコントール(名前をAAAとします)があり > そのプロパティが(名前をbbbとします)だったとします。 > そのプロパティが、コントロール内で複数存在します。 整数を引数として受け取るプロパティ、たとえば VB6 の ListBox の List プロパティなどは、このように書けますね。 Option Explicit Private Sub Form_Load() Dim i As Integer For i = 0 To 10 List1.List(i) = "サンプル" & CStr(i) Next End Sub Private Sub Command1_Click() Dim i As Integer For i = 0 To List1.ListCount - 1 Step 2 List1.List(i) = "偶数" & CStr(i) Next End Sub プロパティ名の末尾に 1 , 2 , 3 , …のような連番がつく形なら、 'AAA.bbb1 = 値 Call CallByName(AAA, "bbb" & CStr(n), VbLet, 値) ですね。 引数付プロパティの場合は 'AAA.bbb1(引数1, 引数2) = 値 Call CallByName(AAA, "bbb" & CStr(n), VbLet, 引数1, 引数2, 値) のような感じです。今回は引数無しのようですが。 > 例としては、AAA.bbb1 "bbb1" ではなく "bbb1" なのですね? ということは、全角変換も必要なので、 Dim propName As String For n = 1 To N propName = "bbb" & StrConv(CStr(n), vbWide, &H411) Call CallByName(AAA, propName, VbLet, 値) Next になりそうです。 |