tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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
になりそうです。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。