2017-02-20 7 views
0

私は、ロイターのアドインを介してExcelデータを1時間ごとに更新する必要があります。これは通常自動的に行われますが、別の種類のデータをフィードしているため、手動で「更新」ボタンをクリックした場合にのみ更新されます。したがって、私は1時間に1回このボタンをクリックする私のVBAを取得する方法を見つけることができない限り、私のモデル全体は役に立たない...ハハ!アドインツールバーのボタンをクリックするようにVBAを取得する... CommandBars?

私はcommandBarsでこのような作業が可能だと読んでいますが、すべての正直なところで私はオンラインの例を理解するのに苦労しています。

ご協力いただければ幸いです。

ありがとう、

答えて

0

このコードを試すことができます。マクロを実行して一定間隔で必要なマクロを開始するスケジューラーを実行できます。

Private Sub Workbook_Open() 

Do While TimeValue(Now) < "23:59:59" 
    ' Enter the name of the Macro that you want to run in the NAME OF MACRO field 
    Application.OnTime TimeValue(Now), "NAME OF MACRO" 

    newHour = Hour(Now()) 
    newMinute = Minute(Now()) + 10 
    newSecond = Second(Now()) 
    waitTime = TimeSerial(newHour, newMinute, newSecond) 
    'Waits for 10 minutes 
    Application.Wait waitTime 
Loop 

End Sub 

このマクロは、ブックブックのオープンイベントで実行します。ワークブックオブジェクト(ThisWorkbook)のプライベートモジュールにアクセスする最も速い方法は、「ファイル」の横のExcelアイコンを右クリックして「コードを表示」を選択することです。私はそれを10分に予定しています。必要な頻度に応じて変更することができます。

ただし、このコードには制限があります。あなたは常にエクセルを開いたままにする必要があります。さらに、他のマクロを実行することもできません。これが1日中実行される必要がある場合は、このシステムを専用システムで実行することをお勧めします。そうしないと、特定の要件に従ってコードを変更する必要があります。

このソリューションがお役に立てば幸いです!さらなる助けが必要な場合はお知らせください。

+0

「OnTime」は適切なオプションですが、正しく実装されていません。http://www.cpearson.com/excel/OnTime.aspxを参照してください。 'Application.Wait'を使うと、ExcelがVBAにスタックされたままになります。 – R3uK