エクセル,excel VBA。一定時間ごとにアクティブシート(sheet)について、並び替え(昇順)をしたいと思います。

 実際は、株価のデータを取り込んで30秒ごとに並び替えをする予定です。(楽天RSS)
 どのようにすればよいでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/05/02 22:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント60pt

シートに[Start]ボタン、[Stop]ボタンを配置して、

それぞれにクリックイベントを割り当てます。

以下、サンプルです。参考としてください。


Option Explicit

'スリープのAPI

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'停止フラグ

Private STOP_FLAG As Boolean


'Startボタンのクリックイベント

Private Sub btnStart_Click()

  Dim i As Integer

  STOP_FLAG = False

  

  Do

    '待ちを入れるのと、Stopボタンを受け入れる

    For i = 1 To 300

      Sleep (100) '[ms]

      DoEvents

      If STOP_FLAG Then

        MsgBox "おしまい"

        Exit Sub

      End If

    Next i

    

    'A1:B5 は、ソートするセル範囲

    'B1は、ソートする列の先頭

    'Order1:=xlAscending (昇順) xlDescending(降順)

    ' 二番目に優先されるキーがある場合は、Order2

    ' 三番目に優先されるキーがある場合は、Order3 とつづくと思います。

    Range("A1:B5").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _

      xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

      SortMethod:=xlPinYin, DataOption1:=xlSortNormal

  Loop

End Sub


'Stopボタンのクリックイベント

Private Sub btnStop_Click()

  STOP_FLAG = True

End Sub

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません