で区切られた数字records("Pillar")
の文字列を取得します。|
次にSplit()
、その文字列を配列にします。ポイントは、値がそれらの配列メンバーの 1 つと一致する各リスト ボックス行を選択することです。
ただし、実際には配列は必要ないと思います。|
その文字列の先頭と末尾にa を追加し、文字でInStr()
囲まれたリスト ボックスの値|
が改訂された文字列に存在するかどうかを確認するために使用する方が簡単です。
その説明はおそらく理解するのが難しかったでしょう。Immediate のこの例でそれが明確になるかどうかを確認してください。
cstrPillar = "1|2|3"
? "|" & cstrPillar & "|"
|1|2|3|
strListBoxValue = "3"
? "|" & strListBoxValue & "|"
|3|
? InStr(1, "|" & cstrPillar & "|", "|" & strListBoxValue & "|")
5
それが理にかなっている場合は、コマンド ボタンのクリック イベントに適用する方法を次に示します。cstrPillar
で動的に取得する文字列のプロキシとして、文字列定数 を使用していることに注意してくださいrecords("Pillar")
。そして、複数選択リスト ボックスに という名前を付けましたlstPillar
。
Private Sub cmdSelectRows_Click()
Const cstrPillar As String = "1|2|3"
Dim i As Long
For i = 0 To (Me.lstPillar.ListCount - 1)
Me.lstPillar.Selected(i) = ( _
InStr(1, _
"|" & cstrPillar & "|", _
"|" & Me.lstPillar.ItemData(i) & "|") > 0)
Next
End Sub
そのクリック イベントの効果は、1、2、または 3 に一致するリスト ボックスの行を選択し、他のすべての行の選択を解除することです。
私はそのMe.lstPillar.Selected(i)
声明が挑戦的であるかもしれないことを理解しています. 私が提案できる最善の方法は、イミディエイト ウィンドウの例に戻って参照し、それが十分に明確になることを願うことです。