見出し画像

【タスクスケジューラ】エクセルマクロ実行方法

なめこ太郎です。

タスクスケジューラでエクセルマクロを動かす方法をご紹介します。

それでは、本題に入ります。

4つのファイルを用意

タスクスケジューラでエクセルマクロを動作させるためには、4つのファイルが必要です。


📒今回の実験例
.xlsファイル→.pdfファイルに変換してみる

ファイル名も分かりやすく『PDF変換』と付けています。
(このあたりは好きに変更してくださいね)

✓PDF変換元ファイル.xls
✓PDF変換.bat
✓PDF変換マクロ実行プログラム.vbs
✓PDF変換.xls

流れを簡単に説明します。

①タスクスケジューラで.batファイルが指定した時間に作動

②.batファイルがエクセルマクロを作動

③エクセルマクロがPDF変換を実行

うーん、よく分かりませんね(爆)

必要なファイルについては、下記にくわしく書きます。

①PDF変換元ファイル.xls

PDFファイルへ変換する元ファイルを作成しておきます。

繰り返しになりますが、今回は例として『PDF変換元ファイル.xls』の拡張子を『PDF変換元ファイル.pdf』へ変換します。

※今回の実験のためだけに必要なファイルです。

②PDF変換.xls

マクロを搭載したエクセルファイルを作成しておきます。
エクセルファイル内にバッチファイルで動かしたいマクロを作成します。

✓PDF変換マクロ

Sub PDF変換マクロ()

'アラートオフ
   Application.DisplayAlerts = False
   
'拡張子を『xls』→『pdf』へ変換    
   Workbooks.Open filename:="任意のパス名\PDF変換元ファイル.xls"
   ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, filename:= _
       "任意のパス名\PDF変換元ファイル.pdf"
       
'アラートオン
   Application.DisplayAlerts = True
   
'エクセル終了
   Application.Quit

End Sub

任意のパス名には、さきほど作成した『PDF変換元ファイル.xls』があるパス名を入力してください。

③PDF変換マクロ実行プログラム.vbs

エクセルマクロを動かすプログラムを作成しておきます。

メモ帳に下記を貼り付けして、拡張子を『.vbs』に変更します。
決り文句です。

Dim obj
Set obj=WScript.CreateObject("Excel.Application")

obj.Visible=False
obj.Workbooks.Open WScript.Arguments(0)
obj.Application.Run WScript.Arguments(1)

④PDF変換.bat

タスクスケジューラに登録するバッチファイルを作成しておきます。
メモ帳に下記を貼り付けして、拡張子を『.bat』に変更します。

@echo off
setlocal enabledelayedexpansion
cscript 任意のパス名①\PDF変換マクロ実行プログラム.vbs 任意のパス名②\PDF変換.xls PDF変換マクロ

【⚠注意点】
任意のパス名を指定してください。

①『PDF変換マクロ実行プログラム.vbs』を置いているパス名
②『PDF変換.xls』を置いているパス名

タスクスケジューラにバッチファイルを登録

①[Windows+Rキー]taskschd.mscと入力

画像2

②基本タスクの作成 

画像3

③タスク名の入力

画像4

④タスクトリガーの設定

画像5

⑤開始・間隔の設定

画像6

⑥操作方法の設定

画像7

⑦プログラムの選択

画像8

⑧完了

画像9

まとめ

💡ポイント
タスクスケジューラ×エクセルマクロで無限大

タスクスケジューラとエクセルマクロを組み合わせることで、『可能性は無限大』です。

今回の例では、単純に『xls』→『pdf』に変換しました。
応用するとPDF化したファイルをメール添付して、指定した時間にメール自動送信することも可能です。

エクセルマクロでメール自動送信する方法については下記の記事を参考にしてください。以上です。

※本記事の内容で実行された結果について、筆者は一切の責任を負いませんので、ご了承ください。必ず自己責任で実行してください。


いいなと思ったら応援しよう!