OfficeType

VBA~ワークブックを開いたときに処理を実行しよう~Excel

Workbook_Openで実行する方法

VBEのプロジェクトエクスプローラーでMicrosoftExcelObjectsフォルダ内のThisWorkbookにPrivate Sub Workbook_Open()を記述し、その下に処理内容を書けばワークブックを開いたときに処理が実行されます。

image-01

下のコードを保存してからワークブックを開くと1秒おきにセルA1からセルA5に1が入力されます。

Private Sub Workbook_Open()
Dim a As Long
For a = 1 To 5
Application.Wait Now() + TimeValue("00:00:01")
Cells(a, 1) = 1
Next
End Sub

Auto_Openで実行する方法

標準モジュールにPrivate Sub Auto_Open()を記述し、その下に処理内容を書けばワークブックを開いたときに処理が実行されます。

image-02

image-03

下のコードを保存してからワークブックを開くと1秒おきにセルA1からセルA5に1が入力されます。

Private Sub Auto_Open()
Dim a As Long
For a = 1 To 5
Application.Wait Now() + TimeValue("00:00:01")
Cells(a, 1) = 1
Next
End Sub

タスクスケジューラと合わせて使おう

タスクスケジューラと合わせて使えば決まった時間に処理を実行できます。

タスクスケジューラを開きます。

image-04

基本のタスクの作成をクリックします。

image-05

タスクの名前を適当につけて次へをクリックします。

image-06

タスクの実行間隔を選択し次へをクリックします。ここでは毎日を選択しました。

image-07

実行時刻を設定し次へをクリックします。

image-08

プログラムの開始を選択し次へをクリックします。

image-09

プログラム/スクリプトの参照をクリックし実行したいエクセルファイルを選択し次へをクリックします。

image-10

完了をクリックします。

image-11

タスクスケジューラライブラリをクリックすると作成したタスクが表示されます。

image-12

あとは設定した時刻に処理が実行されます。