タイトル | : Re: プロパティをループで回す方法 |
記事No | : 16439 |
投稿日 | : 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 になりそうです。
|