• ベストアンサー

ファイルを開いたと同時に、サブプロシージャーを実行

m3_makiの回答

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

「AutoExec」 マクロを作成し 「プロシージャの実行」アクション で test() を実行します。 ただし、「プロシージャの実行」 で 実行できるのは ファンクションプロシージャ のみです。 > ファイルを開いたと同時に、サブプロシージャーを実行 ということなら test を ファンクションプロシージャ に変更するか、 あるいは test を 呼び出すだけの ファンクションプロシージャ test1 を作成し 「AutoExec」 では、 test1() を実行するようにしてください。

EHKIRKIZSPYO
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセル2000 で ファイルを開いたときに ある処理を実行するには?

    質問です. タイトルどおりですが, エクセル2000 で ファイルを開いたときに ある処理を実行するには どうしたらよいですか? 具体的にはあるプロシージャ(マクロ)を作成しておき, ファイルを開くと同時に自動実行する方法です. アクセスにおいてのautoexec のイメージなんですが... エクセルよくわからないので よろしくお願い致します.

  • アクセスからエクセルのプロシージャーを実行させたい

    オフィス2007です。 ////////////////////////////////////////////////////////// ‘Excel側の標準モジュール ////////////////////////////////////////////////////////// Sub Excelのプロシージャー() MsgBox "Excelです" End Sub ////////////////////////////////////////////////////////// ‘Access側の標準モジュール ////////////////////////////////////////////////////////// Sub Accessのプロシージャー() Dim xlsWB As Object Dim MyFileName As String MyFileName = "D:\Accessからプロシージャーの実行テスト用ファイル.xlsm" Set xlsWB = GetObject(MyFileName) xlsWB.Application.Run xlsWB.Name & "!Excelのプロシージャー" Set xlsWB = Nothing End Sub の状態で、アクセス側から Accessのプロシージャー実行すると、 ////////////////////////////////////////////////////////// マクロ'Accessからプロシージャーの実行テスト用ファイル.xlsm!Excelのプロシージャー' を実行できません。 このブックでマクロが使用できないか、 またはすべてのマクロが無効になっている可能性があります。 ////////////////////////////////////////////////////////// となります。 エクセル側は、「すべてのマクロを有効にする」にしているし、エクセルファイルを単独で開き、 Excelのプロシージャーを実行すると問題なく動きます。 同じ条件で、2003で検証すると問題なく動きます。(拡張子は適宜変えてます) エクセルのパスが間違ってるのかな?と思い、適当なパスに変えたところ、 「オートメーション操作中にファイル名またはクラス名を見つけられませんでした。(Error 432)」 というエラーがでたので、パスは合ってます。 原因がわかる方、ご回答よろしくお願いします。

  • エクセルからアクセスのプロシージャーを実行する

    エクセルからアクセスのプロシージャーを実行する方法を教えてください。 アクセスファイル名→ファイル1.accdb プロシージャー名→test1 なのですが、 エクセルで Sub ACCESSのプロシージャーを実行する() Dim OBJ As Object Set OBJ = GetObject("C:\Users\Desktop\ファイル1.accdb") OBJ.Application.Run OBJ.Name & "!test1" Set OBJ = Nothing End Sub としたら、 実行時エラー 2517 ’Microsoft Access!test1’プロシージャーが見つかりません。 になります。 test1は、アクセスの標準モジュール内に記載しています。 モジュール名も指定しないとだめなのでしょうか? その場合のコードの書き方がわからないので教授ください。 該当のアクセスファイルは既に起動しているときもあるし、してない時もあります。

  • マクロ subプロシージャーは指定できない?

    accessのマクロの アクション:プロシージャの実行 は、 subプロシージャーは指定できないのでしょうか? 標準モジュールに Sub test1() MsgBox "プロシージャーの実行のテストです" End Sub Function test2() MsgBox "プロシージャーの実行のテストです" End Function と作り、 マクロのプロシージャの実行で プロシージャ名をtest2()にすると、うまく表示されますが、 test1()だと、失敗します。 subプロシージャーをマクロで呼び出す方法を教えてください。

  • アクセス 他ファイルのプロシージャーを実行したい

    同じローカルに入っている、 アクセスファイル1.accdbから、アクセスファイル2.accdbの標準モジュールのプロシージャーを実行することは可能ですか? アクセスファイル1.accdbで、アクセスファイル2.accdbのプロシージャーを使いたいです。 アクセスファイル1.accdbにアクセスファイル2.accdbのプロシージャーをコピーすればいいのですが 長いので省略したいのです。 アクセス2010です。

  • ファイルごしでプロシージャーを実行したい

    アクセスで PW1.accdb PW2.accdb の二つのファイルがあり、どちらも起動してるのですが PW1からPW2のtestというプロシージャーをPW1内で実行することは可能ですか? 参照設定などをすれば可能でしょうか? それともPW2のプロシージャーを使いたいのならば、 PW2のtestというプロシージャーをコピーして、PW1.accdbのモジュールにはり付けるべきでしょうか?

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

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

  • エクセルからアクセスのプロシージャーを実行させるには?

    エクセルの標準モジュールには→エクセル側のプロシージャー アクセスの標準モジュールには→アクセス側のプロシージャー と言う名前のプロシージャーが作成されています。 これをどちらもエクセル側で実行させることは出来ないでしょうか? 「アクセス側のプロシージャー」ではアクセス側の処理が実行されます。 でもできればエクセル側のコマンドボタンを一回押すだけで エクセルとアクセスの両方の処理を実行させたいです。 エクセルの標準モジュールには Sub エクセル側のプロシージャー() Call アクセス側のプロシージャー End Sub これを実行すると コンパイルエラーになります。 どうすれば一度で二つのアプリケーションのプロシージャーを実行させることが可能でしょうか? よろしくお願い致します。

  • エクセル ファイルの起動と同時にVBE画面を開くに

    accessの場合は、AutoExecを作成し、 モジュールを開くアクションでModule1を指定すれば、 ファイルを開いたと同時にVBE画面を開けますが、 エクセルの場合は、ファイルの起動と同時にVBE画面を開くにはどうすればいいでしょうか? Private Sub Workbook_Open() に何かをすると思うのですが、どうすればいいのかわかりません。 ご回答よろしくお願いします。

  • アクセスからエクセルのプロシージャーを実行する際の

    アクセスからエクセルのプロシージャーを実行する際のエラーです。 おはようございます。長文ですがお許しください。 http://www.geocities.jp/cbc_vbnet/tips/excll.html(03.プロシージャの作成) を参考にアクセスからエクセルのプロシージャーを実行させてるのですがエラーになります。 エクセルファイルのパス→C:\Users\User\Desktop\a.xlsm エクセルファイルに入っているプロシージャ→test() *********************エクセルの標準モジュール********************* Sub test() MsgBox "" End Sub *********************アクセスのイベント********************* Private Sub 更新_Click() Dim App As Excel.Application ’参照設定済み Dim MyFileName As String Dim res As Variant MyFileName = "C:\Users\User\Desktop\a.xlsm" Set App = Excel.Application res = App.Application.Run(MyFileName & "!" & "test") End Sub このアクセスのイベントを実行すると、 「実行時エラー1004 マクロ'C:\Users\User\Desktop\a.xlsm!test'を実行できません。 このブックでマクロが使用できないか、また全てのマクロが無効になっている可能性があります。」 となります。 エクセルのマクロの設定は、「全てのマクロを有効にする」にしてあります。 a.xlsmはダブルクリックすれば普通に開けるし、testも問題なく実行できます。 そして、このアクセスのイベントを実行した後は、エクセルファイルが開けなくなります。 一瞬開くんですが、すぐ閉じてしまいます。 タスクマネージャーのプロセスからエクセルのアプリケーションを強制終了させると 再度開けるようになりますが、画像のように変なドキュメントの回復が出ます。 とりあえず、エクセルが開けなくなることは置いといて、 アクセスからエクセルのプロシージャーを実行する方法を教えてください。 当方オフィス2007です。ご回答よろしくお願いします。