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

7月 27, 2022

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

本記事の内容

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

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

 

VBA定期自動実行方法

準備するもの

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

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

 

2.vbsファイル

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

  1. Dim WB_PATH
  2. Const PROC_NAME = "AccessVBAファイルの実行プロシージャ名"
  3. Dim accessApp
  4. Set accessApp = CreateObject("Access.Application")
  5. ACCESS_PATH = "実行AccessVBAファイルのファイルパス"
  6. With AccessApp
  7.     .Visible = False
  8.     .OpenCurrentDataBase(ACCESS_PATH)
  9.     .Run PROC_NAME
  10.     .DisplayAlerts = False
  11. End With
  12. accessApp.Quit
  13. set accessApp = nothing


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

 

3.batファイル

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

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

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

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

 

タスクスケジューラ設定

タスクスケジューラから

batファイル → vbsファイル → vbaファイル

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

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

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

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

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

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

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

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

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

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

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

 

まとめ

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

 

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

 

 

スポンサーリンク