- ベストアンサー
ファイルを開いたと同時に、サブプロシージャーを実行
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
業務時間外になってからでは間に合いませんでしたが・・・(汗) 既にm3_makiさんから回答がある通り、『プロシージャの実行』 アクションではFunctionプロシージャしか実行できないので、 Public Sub test() '処理内容の記述 '・・・ End Sub となっている場合は、 Public Function test() '処理内容の記述 '・・・ End Function と修正した上で、マクロで「test()」と指定して下さい。 (なお、「Public」は省略可能ですが、そのモジュール以外 から呼出可能なことを明示するために、つけておいた方が 無難と思います) また、同名のSub/Functionが、他のモジュールにも存在する 場合は、マクロの『プロシージャ名』には「test()」ではなく、 「モジュール名.test()」とする必要がありますので、併せて参考まで。 (モジュール名が「Module1」の場合は、「Module1.test()」にする、と) 一応、過去のQ&Aも参考まで: http://okwave.jp/qa/q4995622.html
その他の回答 (3)
- m3_maki
- ベストアンサー率64% (296/460)
「AutoExec」 マクロを作成し 「プロシージャの実行」アクション で test() を実行します。 ただし、「プロシージャの実行」 で 実行できるのは ファンクションプロシージャ のみです。 > ファイルを開いたと同時に、サブプロシージャーを実行 ということなら test を ファンクションプロシージャ に変更するか、 あるいは test を 呼び出すだけの ファンクションプロシージャ test1 を作成し 「AutoExec」 では、 test1() を実行するようにしてください。
お礼
ありがとうございました。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
データベースを開くときにアクションを実行する(AutoExecマクロ) http://www.moug.net/tech/acopr/0010001.html
お礼
ありがとうございました。
- DexMachina
- ベストアンサー率73% (1287/1744)
> 標準モジュールには、testというプロシージャーがあります。 標準モジュールに記述したプロシージャをマクロから実行する場合は、 『マクロの実行』アクションではなく『プロシージャの実行』アクションを 指定します。 手元のAccess2007で確認した限りでは、引数は「プロシージャ名」 のみと思いますので、そこに「test()」と指定してやればOkです。 (testプロシージャに引数がある場合は、上記の「()」の中に指定して やります。引数がない場合も、「()」だけはつけてやってください) ※少なくともAccess2007までは、ここでのプロシージャの引数には 「vbOk」のような、VBAなどで定義された定数は指定できません でしたので、Access2010以降も同様の可能性が高いと思います。 その場合は、ここには「1」などの値を直接指定してやればOkです。 (定数の実際の値は、Ctrl+Gキーの同時押しなどで開く 『イミディエイト ウィンドウ』で、「?vbOK」と入力してEnterキーを 押してやると、次の行に表示されるので、そこで確認できます) 以下のQ&Aで、質問者の方が添付された画像も参考に: (ドロップダウンリストの最上位に「プロシージャの実行」があります) http://okwave.jp/qa/q8011562.html
お礼
ありがとうございました。
お礼
ありがとうございました。