• ベストアンサー

アクセス起動時にVBAを実行させるには?

テーブルのみのMDBファイルがあります。(フォームなし) このMDBファイルを開いたときにマクロ1を実行させるにはどうすればいいでしょうか? フォームやレホ゜ート以外にもイベントプロシージャーはあるのでしょうか? もしくは「起動時の設定」で「マクロ1を実行する」ことは可能ですか? よろしくお願い致します。(ヴァージョン2003)

  • rieury
  • お礼率100% (526/526)

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

No.1です。 > 標準モジュールに ・・・すみません。 AccessよりExcel等の方に慣れている方の場合、「VBA=マクロ」と 思われることが多いというのを忘れていました(汗) データベースウィンドウ(テーブルやクエリ、フォームなどの一覧が表示 される画面)に、『マクロ』というのがあると思います。 そこで作成する方の『マクロ』で、VBAで組む『モジュール』とは別の ものになります。 そちらで、『AutoExec』という名前のマクロを作成してください。 ※添付画像は、『AutoExec』マクロのデザインビューの例になります。  (「マクロ1」がSubプロシージャの場合は、戻り値はなくても構わない   のでとりあえずFunctionプロシージャに変更した上で、   『AutoExec』マクロの『アクション』欄に「プロシージャの実行」を   指定し、画面左下でそのプロシージャ名を指定します:   末尾に「()」(括弧)が必要だったはずなのでご注意のほど)

rieury
質問者

お礼

そっちのマクロですね! できました!できました! わざわざご丁寧にありがとうございます。

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

「Autoexec」または「AutoExec」という名前のマクロを作成すると、 そこに記述されたアクションが、起動時に自動的に実行される ようになります。 ですので、  a)マクロ1の内容をこちらに転記する  b)マクロ1の名前を上記の名前に変える  c)上記のマクロの『アクション』に「マクロの実行」を追加し、   その『マクロ名』引数に「マクロ1」を指定 のどれかやりやすい方法で対応すれば、Okです。 なお、『起動時の設定』と同様、Shiftキーを押しながら起動した 場合は、このマクロも無視されますので、併せて参考まで。

rieury
質問者

お礼

早速のご回答ありがとうございます。 しかしうまくいきません。 試しに、b)の方法で 標準モジュールに Sub AutoExec() MsgBox "test" End Sub としてみましたが 起動時に動きません。 何かおかしいでしょうか?

関連するQ&A

  • Accessのファイルサイズ縮小について

    Access 2000で作成したmdbファイルを Access 2013環境で使用しています。 ・テーブルのみのmdbファイル(1)があります。  mdbファイル(1)の中には、テーブルオブジェクトが1つあり、フィールドが1つ、  フィールドサイズは255です。レコード件数は、36万5000件程度あります。 ・フォームやクエリ、マクロ、mdbファイル(1)と  リンクテーブルでつないでいるmdbファイル(2)があります。 mdbファイル(1)のファイルサイズが、90MBに達しており mdbファイル(2)を開いたり、何か処理させるのを遅くしているのではないか と思っています。 他の方の質問をチェックしましたが、結果は 最適化について  オプション→現在のデータベース→閉じるときに最適化する→チェックON済み  手動で最適化する→変化なし。 MDBをMDEに変換する  Access 2013では、バージョンが違うので変換できないようです。  accdb形式に変換→accde形式に変換しましたが、変化なし  (そもそも、ファイル(1)はテーブルのみで、マクロやプロシージャは無いので、  意味が無かったかも) となっており、対処法が見つからなくて困っています。 何か良い案はないでしょうか。

  • アクセスでauto_openは使えない?

    エクセルの場合は、ブックを開いたと同時にマクロを実行させたい時は、 auto_openと言うマクロを標準モジュールに作れば可能ですが、 アクセスVBAの標準モジュールに、auto_openというプロシージャーを作って、 アクセスを再起動しても何も起こりません。 アクセスにおいて ファイルの起動と同時にマクロを実行させたいのなら、 どこかのフォームのOpenイベントに実行させたいコードを記載して、 起動時の設定で、そのフォームを選択するしかないのでしょうか?

  • ACCESSのマクロに関しまして

    お願いします。 ACCESS97で追加クエリを作成し、その後自動起動にしようと思い、マクロで追加クエリを項目に入れマクロを作りました。 マクロを作成する際に、モジュールでレコード追加するテーブルを一度削除しようと思い、「DELETE文」でモジュールを作成し、マクロの追加クエリの前に「プロシージャの実行」でモジュールのプロシージャを実行するようマクロに記述しました。 <マクロ内容> (1)「プロシージャの実行」  (追加クエリで追加するテーブルの中身をDELする) (2)「クエリを開く」  (追加クエリでレコード追加) この用に記述し、マクロ名を「AutoExec」で記述して、ファイルを実行してもマクロが起動しません。 (1)の「プロシージャの実行」までは、実行されているようなのですが(テーブル内確認)、以降の追加クエリが実行されません。 何か他の設定があるのでしょうか? お願い致します。

  • access2000の2つのmdbのプロシージャ比較

    2個のmdbファイルのプロシージャの比較をする簡単な方法を教えていただけないでしょうか。 どちらも同じテーブル、クエリ、レポート等の内容ではあるのですが、バージョンが違っていて、少しだけプロシージャなどが異なるようです。この異なる場所を特定したいのですが。 #それぞれのプロシージャを開いて1個ずつ比べるしかないということなら、「それしかない」というコメントも是非。 #目的は、問題箇所の特定。

  • アクセス 起動時に2つのフォームを表示したい

    Form_Openのイベントプロシージャーで DoCmd.OpenForm でもう一つのフォームを開くしかないですか? 起動時の設定で二つのフォームを指定することは不可能でしょうか?

  • ACCESS2000 フォームからデータのインポートを起動するには

    お世話になります。 フォーム内にコマンドボタンを配置し、そのボタンをクリックしたら、ファイルからテーブルへデータのインポートを起動するようにしたいのですが、イベントプロシージャで、どのように記述すればよいでしょうか。 あるいは、そんなことはできないのでしょうか。

  • 別のAccessファイルのフォームを開くには

    Win2000、Access2000を使用しています。 「あいうえお.mdb」というファイルのフォーム上のボタンをクリックすると、「かきくけこ.mdb」というファイルを起動してそのファイル内のフォームを開きたいんですが、 「かきくけこ.mdb」を起動することができません。 エクセルやワードを起動する要領ではできないのでしょうか?(マクロの”アプリケーションの実行”とかShell関数とかで) どなたかおわかりになる方がいましたらお教え下さい。

  • アクセス2002 VBA

    フォームを保存せずに閉じたいのですが、 当該フォームの「閉じる時」プロパティーにイベントプロシージャを設定し、 Private Sub Form_Close() DoCmd.Close acForm, "フォーム1", acSaveNo End Sub と記述しました。  ところが、実行すると 「Close アクションの実行はキャンセルされました。」とエラーになってしまいました。  間違いの指摘をお願いします。

  • ThinAppでのACCESS97

    こんにちは、 VmwareのThinApp(バージョン5)について教えてください。 現在、ThinAppを利用して Access97をパッケージングしようとしております。 パッケージング環境は WindowsXP Pro SP3です。 パッケージングを完了し、そのexeファイルを 他のXP端末で実行すると問題なく動くのですが Windows7Proで実行すると以下の現象が起きます。 ・WindowsXPで作成していたMDBのテーブル・フォーム・レポート等すべて表示できない(デザインビューでも) ・新規でフォーム・テーブル・レポートは作成できる ・Windows7で作成したフォーム等はWindowsXP側では表示できない(デザインビューでも) 要するに、別OSで作成されたフォームやテーブルは表示できない、という具合です。 MDBを作成しているのはどちらもパッケージしたACCESS97です。 ThinAppでのACCESS97事例は多いと思っていたのですが 解決策が見つかりません。 どなたか、教えていただけますか。

  • accessについて教えてください

    データベースソフト【アクセス】のエラーメッセージについて教えてください 独学でアクセスを勉強しています。 アクセスのテキストを辿りながら売上管理のフォームを作成しました 3つのテーブルがありリレーションさせています (1)フォームで商品登録フォームをテーブルを元にオートフォームで作成しました フォームを閉じるボタンを設定し実行してみたところ。。。 【イベントプロパティに設定した式 クリック時 でエラーが発生しました:名前が適切でありません:終了_Click *マクロ名、ユーザー定義関数名、[イベントプロシージャ]以外の式が指定されています *関数、イベント、マクロの評価でエラーが発生しました】 以上のメッセージが表示されました テキストの解答とプロパティと設定は全て同じでした リレーションシップも参照整合性も設定は全て同じです (2)上記のエラーメッセージ以外に 上記と同じフォームから新しいデータを入力をしてみたらこちらもエラーメッセージが出ました 【リレーションシップを設定しているテーブルがあるためレコードを削除または更新ができません】 という内容です たまに出るメッセージなのですが これまではテーブルのフィールド名が違っていて、訂正すると新レコードの入力ができました 今回も色々確認してみましたが理由がわかりません アクセスを業務で使用したことがないためエラーの対処方法がわかりません ホームページや書店で色々探してみましたが理由がまったくわかしません 初心者な質問なのかもと思いますが お分かりのかたがいらっしゃればアドバイスお願いします

専門家に質問してみよう