VBAタイマーを使用してExcelワークシートを定期的に更新する方法

今すぐ共有:

この記事では、ワークシートまたはチャートを定期的に更新する方法を示します。 この演習では、ソースデータの変更を反映して、ワークシートをXNUMX分ごとに更新するタイマーを作成します。

この記事は、読者が開発者リボンを表示していて、VBAエディターに精通していることを前提としています。 そうでない場合は、Googleの「Excel開発者タブ」または「Excelコードウィンドウ」をご覧ください。

この演習で使用したワークブックの例を見つけることができます こちら.

動的レポートの用途は次のとおりです。

  • プロパティを読むtar通話を分析するために、会社の電話システムに付属しているデータベース。
  • 賞品やラッフルの目的で、15分ごとに乱数を生成します。
  • 特定のレベルに達したときに、ローカルデータベースから電子メールを自動送信します。 (ここでは、タイマーは、達成されたレベルに基づいて、プロセスを起動するかどうかを決定します)。

または、使用するもの:

  • インターネットからの最新のUSD / EUR為替レートを表示します。

データはから抽出されます Yahooファイナンスのウェブサイト XNUMX分ごと。 テストに成功したら、より長い処理間隔に置き換える必要があります。

インタフェース

新しいブックを開きます。

最初のシートに「ディスプレイ」という名前を付けます。 テーブルD8からE11はWebから入力されるため、値または行見出しを入力する必要はありません。 残りはオプションです。インターフェイスを準備する

コード

VBAコードウィンドウを開き、モジュールを挿入します。 以下のコードをモジュールにコピーします。

Auto_Openイベントtar開発中に開発者がコードを中断しない限り、ワークブックが開いたときにタイマーを設定し、ワークブックが閉じたときに停止します。VBAコード

Sub Auto_Open()
AlertTime = Now + TimeValue("00:01:00") 'interval in minutes
Application.OnTime AlertTime, "Ticker"      'call Sub Ticker, below
End Sub

Sub Ticker()
    Dim currBuy As String
    Dim currSell As String

    Range("D8:F11").ClearContents            'prepare the destination for the web data
    currBuy = "USD"
    currSell = "EUR"
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$8"))
        .Name = "q?s=" & currSell & currBuy & "=X"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """table1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    AlertTime = Now + TimeValue("00:01:00") ‘move trigger on a minute
    Application.OnTime AlertTime, "Ticker"
End Sub

結果

シート「ディスプレイ」の表は、n分ごとにYahooのWebサイトから更新されます。 より複雑なデータ接続については、MicrosoftのWebサイトを参照してください。

破損したブックの回復

Excelは、おそらくリソースの不足に関連して、予期しない瞬間にクラッシュすることが知られています。 このような場合、ソースファイルはirrevoになる可能性がありますcab破損していて、再度開くことを拒否します。 頻繁なバックアップがない場合、回復するためのツール 破損したExcel ファイルは非常に貴重です。

著者紹介:

フェリックスフッカーは、のデータ復旧の専門家です DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 rar 修正します およびSQL回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。