2017-04-03 3 views
0

Tl:dr Excelが開いていないときにExcel VBAマクロを起動する方法がないかどうかを調べる。Excelがオフのときにマクロを起動する

ロングバージョン:特定のウェブサイトからデータを取得し、それに応じてスプレッドシートを更新するマクロがあります。この問題の唯一の問題は、月曜日の午前05時(GMT)と木曜日の午前01時15分(GMT)の不便な時間にデータが更新されることです。

私が必要とするのは、Excelの自己起動、データの収集、スプレッドシートの更新、シャットダウンの方法です。これは可能ですか?

+1

作成 は私のテストのために、私は自分のデスクトップ上のファイルを呼び出しVbScriptファイルを作成し、Excelマクロを実行し、目的の時間に実行するようにスケジュールするコードを記述します。 – ManishChristian

+0

この[質問とその回答](http://stackoverflow.com/q/10232150/7648526)が役立ちます。 – SteveES

+0

はいプロセスを呼び出すためにWindows TASK SCHEDULERを使用します。 START A PROGRAM、アプリ名、EXCEL、ファイル名(パスを含む)に単純に含めることはかなり簡単なプロセスでなければなりません。 XLSにはTHISWORKBOOK内にWORKBOOK_OPENサブルーチンがあることを確認してください。あなたが望むなら、正式な答えでこれを綴ることができます。私にお知らせください。 – flaZer

答えて

2

さらに簡単に - VBスクリプトは不要です。

WINDOWS TASK SCHEDULERを実行し、アプリケーションとしてExcelを使用してジョブを設定します。

enter image description here

あなたはExcel.exeのために検索する必要があります - ので、私のバージョンで、私はここでそれを見つけた:

"C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"

を次のマクロへの完全なパスと引数を供給埋め込まれたExcelファイル。それからちょうどあなたのワークブックはあなたのコードをトリガするThisWorkbookモジュールでWorkbook_Open手順を持っていることを確認してください

C:\Users\br12260\Desktop\TimeSeries.xls

enter image description here

2

私はこのように私はそれだろう、あなただったら:

は、最初はそれが必要とされるときに私は、XLSMファイルを開くと、私は、サードパーティ製のプログラムをインストールします。

Excelがスプレッドシートを開いたら、Sub Workbook_Open()ルーチンを作成してマクロを自動的に実行できます。完了したらスプレッドシートを閉じることができ、Excelを終了します。

1

最善の方法は、VB.netスクリプトを作成することです。はPCを左にある

最も簡単な方法は、夜の間にオンとthis簡単なチュートリアルは、次のとおりです。もう一つの方法

Public dTime As Date 
Dim lNum As Long 

Sub RunOnTime() 
    dTime = Now + TimeSerial(0, 0, 10) 
    Application.OnTime dTime, "RunOnTime" 

    lNum = lNum + 1 
    If lNum = 3 Then 
     Run "CancelOnTime" 
    Else 
     MsgBox lNum 
    End If 

End Sub 

Sub CancelOnTime() 
    Application.OnTime dTime, "RunOnTime", , False 
End Sub 

this answerで書かれたように、Windowsのスケジューラを使用しています。

関連する問題