【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
【連載】#04 Access のテーブル クエリ フォーム マクロ とよく使う画面をおぼえよう

この記事では Microsoft Access のマクロから Access VBA のマクロ から VBA プロシージャ を呼び出すときのきまり、マクロを自動実行する方法について詳しく紹介します。

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
しらかば堂

いつも記事を読んで頂きありがとうございます~
今日の調子はいかがですか?

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
しらかば堂

Access でよく使う 画面
テーブル、クエリ、フォーム、マクロ
フィールド、レコード 等のキーワード
おぼろげながらイメージできるようになりましたか?

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
みなみ

何が何やら
ちんぷんかんぷん!

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
しらかば堂

ですよね~
まだ「友達とお茶したい!」とか
「早くコロナが収束してほしい!」
とかいうプログラムしか作ってませんもんね~(笑)

動画を再確認する

Access でよく使う画面、キーワード がイメージできるようになったら

【連載】#03-02 VBA のSubプロシージャと関数(Functionプロシージャ)の違いとは?

で観て頂いた次の動画をもう一度確認してみましょう。

見づらいときは画面をフルスクリーンにすることをお勧めします。

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
しらかば堂

何をしているかわかりますか?

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
みなみ

わかんないっ!

【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
しらかば堂

ですよね~(笑)
それではできるだけ丁寧に説明しますね~

関数を自動実行させる

この動画では 04_01.accdb という Access ファイルの中に

  • 関数 Access_VBA_Sample() を呼び出し
  • Access を終了させる

マクロ を定義し、そのマクロautoexec という予約名を付けることで、この  04_01.accdb をダブルクリックしたら自動的に 関数 Access_VBA_Sample() を実行し、その実行後に処理を終了するツール を作って実行しました。

その具体的手順

動画の具体的手順は次のとおりです。

  • VBE 画面の中で 呼び出したい関数名 Access_VBA_Sample をコピーしてAccessメイン画面 に戻り
  • リボン 内の 作成 タブ、 マクロ を順にクリックしてマクロビルダ画面 を起動し
  • マクロビルダ画面 の中で先ほど コピーした関数名 Access_VBA_Sampleをペーストするなどしながら以下の記述を完成させ
【連載】#05 Access のVBA 関数はどうやってマクロから呼び出されるの?
  • 出来上がった マクロ を autoexec という名前で保存してマクロビルダ画面 を閉じ
  • この Access ファイルをデスクトップ上に 04_01.accdb という名前で保存し
  • そしてこの 04_01.accdb を ダブルクリック して起動しました

この アプリケーション は、一旦できてしまえばそれを ダブルクリック するだけであなたがしてほしいと思うことをあなたのしもべ として 何度でも 何度でも 何度でも …♪ やってくれます。

処理の多さにもよりますが 数秒~数分 で

あなたはその仕事を今まで毎日 何分何時間 かけてやっていましたか?

最初に VBE 画面の中で 呼び出したい関数名 Access_VBA_Sample
コピーするのは、関数名を間違いなく マクロ の中で記述したいからで
簡単な 関数名 なら、マクロビルダ 画面 に直接書いても構いません。

マクロからVBAプロシージャを呼び出すときの決まりごと

実は マクロ から VBA 内に記載されている プロシージャ を呼び出す際には次のような決まりごとがあります。

  • Sub プロシージャは マクロ から呼び出すことはできません
  • マクロ から呼び出したい プロシージャは 戻り値の型が整数先頭が大文字英数字 の名称をもつ  関数 としなければいけません。この場合に限り マクロ から呼び出すことができます
  • マクロ の名称を autoexec とすると、この Access ファイルをダブルクリック すればその処理を何度でも実行することができます
  • 自動実行を望まない マクロ の名前は autoexec 以外で自由に決めることができます
  • こうした マクロナビゲーションウインドウ 内にあるこの マクロ の名前の上をダブルクリックするか、他の マクロ から呼び出すことにより実行できます

ナビゲーションウインドウ については必要に応じて次の記事を参照して下さいね。

【連載】#04 Access のテーブル クエリ フォーム マクロ とよく使う画面をおぼえよう

まとめ

いかがでしたか?
今回は マクロ から VBA プロシージャ を呼ぶときの決まりごととして

  • Sub プロシージャマクロ から呼び出せない
  • 関数:戻り値が 整数型名称の先頭が英大文字 のもののみマクロ から呼び出せる
  • マクロ の名前を autoexec とすると、Access ファイルの起動後の自動実行処理 を作ることができる

ということを確認しました。

さてこの記事全体の目標は

  • 今の状況から抜け出してもっと前向きな仕事に取り組みたい
  • さっさと仕事を切り上げて充実したアフターファイブを過ごしたい

でしたよね。

あなたがその目標を達成するには

  • Access 内に autoexec という名前の マクロ を作ることができる
  • この マクロ の中に  クエリ  VBA 関数 等によりめんどくさい処理 を記述することができる

ことが必要です。

次回はまた

【連載】#06 めんどくさい仕事を楽にするツールをAccess VBAを使ってどう作るのか

Access VBA の次の扉を開けましょう。

さらに違う世界が見えてくるはずです。


Microsoft Access 関連教材は次のリンクからどうぞ。

Access VBA 関連教材の紹介