ExcelVBA(マクロ)定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】
ExcelVBAを定期自動実行したい人向けに書いています。
本記事の内容
ExcelVBA(マクロ)のタスク実行を定期的に自動で実行したいと思っていませんか?
ExcelVBAの定期自動実行方法を紹介します。
VBA定期自動実行方法
準備するもの
1.自動実行するExcelVBAファイル
当たり前ですが自動実行するファイルを用意します。
自動実行したい処理を1つのプロシージャにまとめておいてください。
vbsファイルで実行したいプロシージャ(proc)を実行します。
2.VBScriptファイル
テキストエディタに以下のプログラム内容を記載して、拡張子を.vbsに変更して保存します。
- Dim WB_PATH
- Const PROC_NAME = "ExcelVBAファイルの実行プロシージャ名"
- Dim excelApp
- Set excelApp = CreateObject("Excel.Application")
- WB_PATH = "実行ExcelVBAファイルのファイルパス"
- With excelApp
- .Visible = False
- Dim wb
- Set wb = .Workbooks.Open(WB_PATH)
- .Run "'" & wb.Name & "'!" & PROC_NAME
- .DisplayAlerts = False
- wb.Save
- wb.Close
- End With
- excelApp.Quit
- Set excelApp= Nothing
2行目:ExcelVBAファイルの実行プロシージャ名を設定する
7行目:実行するExcelVBAファイルのファイルパスを設定する
3.batファイル(バッチファイル)
batファイルもテキストエディタに以下のプログラム内容を記載して、拡張子を.batで保存します。
- echo off
- cscript [vbsファイルパス]
3行目でvbsファイルのファイルパスを指定します。
batファイルとvbsファイルを作成後、batファイルをダブルクリックししてvbaファイルが起動するか確認してください。
もし実行できない場合は文字化けしていないか確認してください。
batファイルとvbsファイルの文字コードを「ANSI」や「S-JIS」にして保存してください。
名前をつけて保存時に以下の画面で文字コードを変更できます。
タスクスケジューラ設定
タスクスケジューラから
の順に起動させます。
タスクスケジューラではbatファイルの起動設定を行います。
手順は以下のとおりです。
1.Windows検索バーでタスクスケジューラを入力して、タスクスケジューラアプリを起動する
2.操作タブのタスクの作成をクリックする
3.全般タブの名前(任意の名前)を入力し、
セキュリティオプションの「ユーザーがログオンしているかどうかにかかわらずに実行する」を選択して
「最上位の特権で実行する」にチェックを入れる
4.トリガータブをクリックして新規ボタンをクリックする
5.新しいトリガーウィンドウで起動タイイングを設定し、OKボタンを押す
6.操作タブをクリックして新規ボタンをクリックする
7.プログラム/スクリプトの参照ボタンを押して作成したbatファイルを選択し、OKボタンを押す
8.条件タブをクリックして電源の「コンピュータをAC電源で使用している場合のみタスクを開始する」のチェックを外し、OKボタンを押す
9.最後にタスクの作成ウィンドウのOKボタンを押し、パスワードを求められるのでWindowsログインIDのパスワードを入力する
ここまでの設定が完了しましたら、実際に実行してみてください。
もし、実行できないようであれば以下画面のユーザまたはグループの変更で管理者権限のアカウントに変更してみてください。
まとめ
ExcelVBA(マクロ)の定期自動実行方法を紹介しました。
最後までご覧いただきありがとうございました。
「AccessVBA定期自動実行方法【batファイル VBScriptファイル タスクスケジューラ】」
「【VBA】定期自動起動処理のエラー対応処理(処理結果メール送信)」
も紹介していますので、もしよろしければこちらも御覧ください。
最近のコメント