Access

AccessをWindowsタスクから起動して定型処理を実行する方法

Accessを利用して定期的にデータをCSV出力する処理をタスク実行します。

毎日または毎時、何らかのデータ連携や定型業務が必要な時に便利ですね。

タスクでAccessの処理を自動実行するにはAutoExecマクロ(またはモジュール)を使います。

また、Access起動時に引数を設定することもできますので、Aの処理は1時間ごとに、Bの処理は1日毎に…という分岐も簡単です!

Accessをタスクから起動して処理を実行する方法

Accessをタスクから起動して処理を実行する概要

  1. AutoExec処理を記述
  2. Windowsのタスクに設定

AutoExec処理の記述

Access起動時に処理を実行させるためにはAutoExceマクロ、またはAutoExcec関数を作成します。

AutoExecマクロ

AutoExecという名前のマクロを作成し、処理させたい内容を記述します。

処理を記述した関数を作成し、AutoExecマクロから起動でもOKです!

AutoExec関数

Function AutoExec() As Integer
MsgBox “ファイルを開きました”, vbOKOnly+vbInformation, “通知”
AutoExec = 1
End Function

上記のようなfunction()関数を作成します。

Sub()関数ではNGなので、Function()関数で作成し、戻り値(1)をセットしています。

Access起動時に引数(OpenArgs)を渡していればこの関数内で処理の分岐を設定することができます。

AutoExecを設定しているとファイルを開くと同時に処理が実行されます。

デバッグ中などの理由で処理を自動実行したくない場合はSHIFTキーを押しながらファイルを開くとAutoExec処理をスキップすることができます。

Windowsのタスクに設定

Winowsのタスクで定時にAccessが起動されるように設定します。

  • 操作:プログラムの開始
  • プログラム/スクリプト:(例)”C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE”
  • 引数の追加(オプション):(例)”C:\tools\データ連携.accdb” /cmd “2”

※引数の赤字部分は任意です。引数には実行するaccessファイル名をフルパスで指定します。引数の指定方法については次の章で詳しく解説します。

トリガーには実行するスパンを設定します。

スポンサーリンク

Access起動の引数を設定して処理を分岐する方法

CommandラインにAccessの引数を渡す

先の例にあったように、ACCESSを開く時、Commandラインで引数を与えることができます。

(例)C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE C:\tool\test.accdb /cmd ABC

上記の例では、”ABC”という文字列をtest.accdbの起動時引数として設定するという意味です。

このような記述方法であれば、引数によってAccess起動時の挙動を分岐することができます。

Access起動時の引数による処理の分岐方法

引数として渡された値を参照できるのはCommand()関数です。

先の例で引数として渡された”ABC”という文字列は

Msgbox Command

このような形で取得することができます。

この関数を使えば、先のAutoExec処理内で、引数による処理の分岐が可能になります。

尚、/cmdを指定しなかった場合、Command()関数は長さ0の文字列(≠Null)を返します。

このため、上記のサンプルPGの場合はElseの分岐に入りますのでエラーにはなりません。

フォームを開くときの引数は以下のページをご確認くださいね↓

フォーム引数渡し
【Access】OpenArgsでフォームを開く引数に複数の値を渡したいAccess VBAにて複数の値を引き継いで次のフォームを開きたいケースがあります。OpenFormの引数には1つの文字列しか渡せませんが、受け取った側のフォームで配列にすることはできます。簡単なサンプルをご紹介します。...

スポンサーリンク

まとめ

Windowsタスクから定期的に処理できるようになると何かと便利です。

集計クエリを作っておいて、毎日決まった時間に決まったフォルダにデータをExportしたり、逆に特定のフォルダにあるデータを定期的に取り込んだり…。

出来ることが広がりますので是非試してみてくださいね!

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら