- ベストアンサー
スクロールバーの操作(?)
いつもお世話になっています。 Excel2000VBAで、フォーム上にListViewコントロールを使用して、あるデータを表示しています。 Timerでカウントをとり、10秒毎に上から順に反転(選択状態)するプログラムを作成しました。 ここまではよいのですが、例えばリストのデータが50項目あった時に、画面上では10項目しか表示できない(高さの関係で)場合、上記プログラムだと11項目目から、ListViewの高さを越えてしまう為、隠れてしまいます。(スクロールバーを手動で下げれば見える) そこでご質問なのですが、スクロールバーをプログラム上から操作することは可能なのでしょうか? ListView以外のコントロールでもAPIでも構いません。 どなたかご教授下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リストアイテム.EnsureVisible()メソッドで可能です。 同じ質問が過去に存在しています。 http://okwave.jp/kotaeru.php3?q=222732
その他の回答 (1)
- haniwannko
- ベストアンサー率55% (16/29)
>ListView以外のコントロールでもAPIでも構いません。 とのことで・・ListBoxですが。。 Private Sub CommandButton1_Click() ListBox1.AddItem "A" ListBox1.ListIndex = ListBox1.ListCount - 1 End Sub とすると、CommandButton1をクリックするたびに自動的にListBox1の最終行が選択され、連打するとスクロールバーも自動的にスクロールしていきます。 ListViewは使ったことないのですが、同じようにListIndexや、Indexプロパティに、ListCountやListItems.Countなどの値をうまく使えばできるのではないでしょうか・・。 プロパティについては確信がありませんが。。 ご健闘をお祈りしております。
お礼
haniwannkoさん! お返事が遅くなり誠に申し訳ございませんでした! 色々と参考になる情報ありがとうございます。 上記の方法で一度やってみようとおもいます。 本当にありがとうございました!
お礼
1050YENさん! お返事ありがとうございました!! おっしゃるとおり、EnsureVisible()メソッドで 全て解決いたしました! 本当にありがとうございました!!