2011.06.25 Saturday
リストボックスでの高速全選択
通常、リストボックスでの全選択では以下のようなコマンドを使います。
Dim Ctl As Control
Dim intCounter As Integer
Set Ctl = Me!lstbox
For intCounter = 0 To Ctl.ListCount - 1
Ctl.Selected(intCounter) = True
Next
リストボックスの表示リストを1件1件選択していくのですが、数千件あると結構時間がかかります。
で、瞬時に選択するには「Sendkeys」を使います。
Ctl.SetFocus
SendKeys "^{END}+^{HOME}"
これだけでOKです。最後から先頭へ向かって選択しています。
先頭から最後に選択するとリストの最後に送られてしまうので・・・・
ちなみにその場合は
SendKeys "^{HOME}+^{END}"
Dim Ctl As Control
Dim intCounter As Integer
Set Ctl = Me!lstbox
For intCounter = 0 To Ctl.ListCount - 1
Ctl.Selected(intCounter) = True
Next
リストボックスの表示リストを1件1件選択していくのですが、数千件あると結構時間がかかります。
で、瞬時に選択するには「Sendkeys」を使います。
Ctl.SetFocus
SendKeys "^{END}+^{HOME}"
これだけでOKです。最後から先頭へ向かって選択しています。
先頭から最後に選択するとリストの最後に送られてしまうので・・・・
ちなみにその場合は
SendKeys "^{HOME}+^{END}"