• ベストアンサー

VBA オートフィルタの自動更新

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

質問者が選んだベストアンサー

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

標準モジュール内に以下のコードを 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実行でタイマー処理を停止します。

kozou1126
質問者

補足

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

その他の回答 (1)

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.2

True の綴りが Tureになってますね。 失礼しました 訂正してください。

kozou1126
質問者

お礼

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

関連するQ&A