dポイントプレゼントキャンペーン実施中!

ご教示お願いします。
セルB2~B100まで数値が入っています。
この数値をオートフィルタにて、2秒間隔で降順に並べ変えるということをVBAで実行したいです(2秒間隔でVBAを実行させたい)。

※セルB2~B100の数値を変化させている為、オートフィルタにて随時更新する必要があるので、2秒間隔で降順に並べ変えたいという意図です。

A 回答 (2件)

標準モジュール内に以下のコードを


Dim NextTime as Date
Sub TimerSort()
Sheets("Sheet1").Range("B2:B100").Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlYes
NextTime = Now + TimeValue("00:00:02")
Application.OnTime NextTime, "TimerSort", ,Ture
End Sub

Sub TimerStop()
Application.OnTime NextTime, "TimerSort", ,False
End Sub

TimerSortを実行すると以後2秒毎にソートを実行します。
正し、正確に2秒後ではなくExcel が入力中、コピー、切り取り、検索などの状態であれば終了を待って実行となります。
Sortの部分のコードは状況に合わせ変更してください。

TimerStop実行でタイマー処理を停止します。

この回答への補足

ご回答ありがとうございます。
TimerSortのコードを実行しましたが、以下のエラーで止まってしまいました。
「ontimeメソッドは失敗いたしましたapplicationオブジェクト」
知識不足の為、修正できません。
お手数おかけしますが、お願いいたします。

補足日時:2008/06/24 19:12
    • good
    • 1

True の綴りが Tureになってますね。

 失礼しました
訂正してください。
    • good
    • 0
この回答へのお礼

解決いたしました。
ご回答いただきましてありがとう御座いました。
お礼が遅くなり申し訳御座いませんでした。

お礼日時:2008/07/09 02:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!