PR

Access VBA逆引き集|Windowsタスクスケジューラと連携して完全自動運用を実現する実践テクニックとCopilot活用術

Access学習

Accessで業務システムを構築すると、多くの場合は利用者が手動で処理を実行しています。

しかし実際には、

  • 毎朝のCSV取込
  • 夜間集計処理
  • バックアップ実行
  • PDF帳票作成
  • メール通知

など、人が操作しなくても実行できる処理が数多く存在します。

結論から言うと、Access VBAとWindowsタスクスケジューラを組み合わせることで、これらの処理を自動実行できるようになります。

当ホームページではAutoExecマクロによる起動時処理や、コマンド実行による自動化について過去に紹介していますが、本記事ではさらに発展させて「決まった時間にAccessを自動実行する方法」に焦点を当てます。


スポンサーリンク

はじめに

多くのAccessシステムは次の流れで運用されています。

利用者出社

Access起動

CSV取込

集計処理

レポート作成

しかし実際には、

早朝自動取込

自動集計

PDF作成

メール送信

利用者確認のみ

という仕組みにすることも可能です。

そのために活用するのがWindowsタスクスケジューラです。


タスクスケジューラとは

Windowsに標準搭載されている機能です。

例えば、

  • 毎日6時
  • 毎週月曜日
  • 月末最終日

など指定したタイミングでプログラムを実行できます。

追加費用も不要です。


Access自動化との相性

Accessでは次のような処理が自動化できます。

CSV取込

早朝のデータ連携

売上集計

前日実績集計

レポート出力

PDF帳票生成

メール送信

担当者通知

バックアップ

データ保全

特に定型業務との相性が抜群です。


AutoExecマクロを活用する

まず自動起動時の入口を作ります。

AutoExecマクロはAccess起動時に自動実行される仕組みです。

例えば、

Function AutoExec()

Call MainProcess

End Function

としておけば、

Access起動

AutoExec

MainProcess

が実行されます。


逆引き① 自動処理用プロシージャを作りたい

標準モジュールに作成します。

Public Sub MainProcess()

MsgBox "処理開始"

End Sub

まずはここから始めます。


逆引き② CSV取込を自動実行したい

AutoExecから呼び出します。

Public Sub MainProcess()

DoCmd.TransferText _

acImportDelim, _

"", _

"T_IMPORT", _

"C:\Import\Data.csv"

End Sub

起動と同時に実行できます。


逆引き③ クエリを実行したい

定期集計で活躍します。

CurrentDb.Execute _

"UPDATE T_DATA " & _

"SET FLG = True"

夜間バッチ処理に利用できます。


逆引き④ PDF帳票を自動作成したい

DoCmd.OutputTo _

acOutputReport, _

"R_売上報告", _

acFormatPDF, _

"C:\PDF\売上.pdf"

毎朝の帳票作成に有効です。


逆引き⑤ 処理完了メールを送りたい

集計完了通知として利用します。

Call SendMail

処理終了後に担当者へ通知できます。


逆引き⑥ 処理完了後にAccessを閉じたい

無人運用で重要です。

Application.Quit

最後に実行します。


実務でおすすめの処理フロー

例えば売上管理システムの場合です。

06:00 Access起動

CSV取込

更新クエリ

売上集計

PDF出力

完了メール送信

Access終了

担当者が出社する頃には準備完了です。


ログ管理を実装する

無人運転では必須です。

T_BATCH_LOG

項目
実行日時
処理名
結果
エラー内容

保存例

CurrentDb.Execute _

"INSERT INTO T_BATCH_LOG " & _

"(実行日時,処理名) " & _

"VALUES(Now(),'夜間処理')"

エラー処理を必ず実装する

自動実行では特に重要です。

On Error GoTo ErrHandler

Call MainProcess

Exit Sub

ErrHandler:

CurrentDb.Execute _

"INSERT INTO T_ERROR_LOG " & _

"(発生日時,内容) " & _

"VALUES(Now(),'" & _

Err.Description & "')"

最近のAccess運用ではエラー処理とログ記録が非常に重要視されています。


実務活用例① 日次売上集計

毎日早朝に実行します。

CSV受信

Access起動

集計

出力

管理者の作業を削減できます。


実務活用例② 在庫管理

深夜に在庫再計算を実施します。

データ更新

在庫計算

結果保存

営業時間への影響を避けられます。


実務活用例③ 月次報告

月末バッチとして活躍します。

締処理

PDF作成

共有フォルダ保存

定型業務を効率化できます。


Copilot活用術① バッチ処理コード作成

Copilotへ次のように依頼します。

Access VBAで夜間バッチ処理を作成してください。

条件

・CSV取込

・PDF出力

・エラーログ記録

・処理後終了

かなり実用的なコードの雛形を生成できます。


Copilot活用術② エラー分析

例えば次の内容を貼り付けます。

実行時エラー3027

すると、

  • 発生原因
  • 確認方法
  • 修正案

を整理できます。


Copilot活用術③ ログ分析

ログデータを提示して、

処理時間が長い原因を分析してください

と依頼できます。

最近のCopilot活用では、コード作成だけでなく分析支援も有効です。


完全自動運用のポイント

ログ記録

障害発見を容易にする

エラー通知

メール送信する

処理時間計測

性能悪化を監視する

共通設定化

保存先を設定テーブル化する

定期メンテナンス

ログ肥大化を防ぐ


Accessとタスクスケジューラの組み合わせが強力な理由

最近はクラウドサービスも増えていますが、

  • 社内ネットワーク完結
  • 追加費用不要
  • VBA資産を流用可能

という利点があります。

さらにCopilotを活用すると、

  • VBA作成
  • SQL生成
  • エラー解析
  • ドキュメント作成

を効率化できます。Access開発においてCopilotは有力な支援ツールになっています。


まとめ

Access VBAとWindowsタスクスケジューラを組み合わせることで、多くの定型業務を無人化できます。

特に、

  • CSV取込
  • Excel連携
  • 集計処理
  • PDF生成
  • メール通知

といった処理では高い効果を発揮します。

また、AutoExecマクロを活用することで起動時に自動処理を実行できます。

さらにCopilotを活用すれば、

  • バッチ処理作成
  • エラー解析
  • ログ分析
  • 改善提案

も効率化できます。

Accessシステムを利用している企業では、まずは一つの定型業務から自動化を始めることで、大きな業務改善効果を得られるでしょう。

コメント

タイトルとURLをコピーしました