見出し画像

寝ている間に、Excelマクロ(VBA)を自動実行


Excelマクロも、RPAも、ボタンを押す人が必要!? 

ExcelのマクロもRPAも、「繰り返し同じような作業を人がやるのは無駄」という発想から始まっています。

しかし、たいていは動かすためには何らかのトリガーを引く必要があります。このため、在宅就業となっているにも関わらず、マクロのボタンを押すために出社する・・・といった笑えない話を聞きました。

この解決策として、リモートで会社に接続する方法がよく紹介されていますが、完全自動化すればその必要もありません。

決まった時間に決まった仕事を繰り返す、タスクスケジューラ

完全自動化、といっても、Excel側で特別に何かをする必要はありません。
強いて挙げれば、起動した際に自動的に実行するファンクションを決めておくとよいでしょう(他にもいろいろやり方があります)。

Windowsの機能に、時間が来たら指定したアプリケーションを実行する「タスクスケジューラ」というものがあります。

タスクスケジューラの設定画面イメージ

ここに、自作のExcelファイルを指定しておけば、「平日の朝4時に○○○○○.xlsmを自動実行する」ようなことができます。Windowsをシャットダウンすることもできるので、順番に組み合わせれば、勝手に起動して処理を実行後シャットダウンする、ということも可能です。

Excelのマクロファイルは、アプリケーションではないので、アプリケーション=Excel、引数の追加=マクロファイルを指定します。

自動実行時、マクロを有効にする方法

マクロ入りのファイルのマクロを有効にする

初期状態では、Excelのファイルは開けても、マクロが有効化されません。

ファイル → オプション → セキュリティセンター → セキュリティセンターの設定、とたどっていき、「信頼できる発行元」にマクロファイルを登録してあげれば、次回から自動的にマクロを有効にして実行できます。

ExcelVBAを自動で有効になるよう設定

情報システムとしての応用

情報システムとしてこの機能を使うことで、例えば以下のようなことができます(いずれも、実事例)。

  • 夕方の締め時刻になったら、指定フォルダ内にあるExcelの伝票ファイルをすべて集計する

  • 夜中に前日の入出庫・移動データを元に、在庫ファイルを更新する

  • 早朝に、前日更新されたファイルのみバックアップする

  • 夜間にクラウドデータベースのバックアップを行う

  • 一時間おきに基幹システムに接続し、在庫の最新情報を取得する

プロの現場では、失敗も検出

このように自動実行の設定をしても、たまたま自動更新(Update)の時間にかぶってしまったなどの理由で、実行されないままの場合もあり得ます。
基幹システムのようなシステムでは、止めることが許されませんから、実行に失敗した場合も検出してアラートがあがるような仕掛けを取り入れます。
わかりやすいのは、成功したらメールを送る方法です。俗に生存メールなどと呼ばれることもありますが、来なければ失敗しているので、Logを見ながら原因を探ります。

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