ExcelVBA(マクロ)定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】

4月 14, 2023

※当ブログではリンク先にプロモーションを含みます。

ExcelVBA定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】

ExcelVBAを定期自動実行したい人向けに書いています。

本記事の内容

・batファイル、VBScriptファイル、タスクスケジューラを使用したExcelVBA定期自動実行方法

ExcelVBA(マクロ)のタスク実行を定期的に自動で実行したいと思っていませんか?
ExcelVBAの定期自動実行方法を紹介します。

 

VBA定期自動実行方法

準備するもの

1.自動実行するExcelVBAファイル

当たり前ですが自動実行するファイルを用意します。
自動実行したい処理を1つのプロシージャにまとめておいてください。
vbsファイルで実行したいプロシージャ(proc)を実行します。

 

2.VBScriptファイル

テキストエディタに以下のプログラム内容を記載して、拡張子を.vbsに変更して保存します。

  1. Dim WB_PATH
  2. Const PROC_NAME = "ExcelVBAファイルの実行プロシージャ名"
  3. Dim excelApp
  4. Set excelApp = CreateObject("Excel.Application")
  5. WB_PATH = "実行ExcelVBAファイルのファイルパス"
  6. With excelApp
  7.     .Visible = False
  8.     Dim wb
  9.     Set wb = .Workbooks.Open(WB_PATH)
  10.     .Run "'" & wb.Name & "'!" & PROC_NAME
  11.     .DisplayAlerts = False
  12.     wb.Save
  13.     wb.Close
  14. End With
  15. excelApp.Quit
  16. Set excelApp= Nothing


2行目:ExcelVBAファイルの実行プロシージャ名を設定する
7行目:実行するExcelVBAファイルのファイルパスを設定する

 

3.batファイル(バッチファイル)

batファイルもテキストエディタに以下のプログラム内容を記載して、拡張子を.batで保存します。

  1. echo off
  2. cscript [vbsファイルパス]

3行目でvbsファイルのファイルパスを指定します。
batファイルとvbsファイルを作成後、batファイルをダブルクリックししてvbaファイルが起動するか確認してください。

もし実行できない場合は文字化けしていないか確認してください。
batファイルとvbsファイルの文字コードを「ANSI」や「S-JIS」にして保存してください。
名前をつけて保存時に以下の画面で文字コードを変更できます。

 

タスクスケジューラ設定

タスクスケジューラから

batファイル → VBScriptファイル → vbaファイル

の順に起動させます。
タスクスケジューラではbatファイルの起動設定を行います。
手順は以下のとおりです。

1.Windows検索バーでタスクスケジューラを入力して、タスクスケジューラアプリを起動する

 
2.操作タブのタスクの作成をクリックする

 
3.全般タブの名前(任意の名前)を入力し、
  セキュリティオプションの「ユーザーがログオンしているかどうかにかかわらずに実行する」を選択して
  「最上位の特権で実行する」にチェックを入れる

 
4.トリガータブをクリックして新規ボタンをクリックする

 
5.新しいトリガーウィンドウで起動タイイングを設定し、OKボタンを押す

 
6.操作タブをクリックして新規ボタンをクリックする

 
7.プログラム/スクリプトの参照ボタンを押して作成したbatファイルを選択し、OKボタンを押す

 
8.条件タブをクリックして電源の「コンピュータをAC電源で使用している場合のみタスクを開始する」のチェックを外し、OKボタンを押す

 
9.最後にタスクの作成ウィンドウのOKボタンを押し、パスワードを求められるのでWindowsログインIDのパスワードを入力する

 
ここまでの設定が完了しましたら、実際に実行してみてください。
もし、実行できないようであれば以下画面のユーザまたはグループの変更で管理者権限のアカウントに変更してみてください。

スポンサーリンク
 

まとめ

ExcelVBA(マクロ)の定期自動実行方法を紹介しました。
最後までご覧いただきありがとうございました。

 

AccessVBA定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】
【VBA】定期自動起動処理のエラー対応処理(処理結果メール送信)
も紹介していますので、もしよろしければこちらも御覧ください。

 

¥1,604 (2024/11/19 08:45時点 | Amazon調べ)
\楽天ポイント4倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング
\楽天ポイント4倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング