次の方法で共有


Application.Run メソッド (Access)

Run メソッドを使用して、指定された Microsoft Access またはユーザー定義関数または Sub プロシージャ実行します。 Variant 型です。

構文

Run (Procedure, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26Arg27Arg28Arg29Arg30)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
手順 必須 String 実行する Function プロシージャまたは Sub プロシージャの名前を指定します。 別のデータベースでプロシージャを呼び出す場合は、"projectname" という形式のドットで区切られたプロジェクト名とプロシージャ名を使用します。procedurename"

ライブラリ データベースで Run メソッドを含む Visual Basic コードを実行すると、Access は最初にライブラリ データベースでプロシージャを検索し、次に現在のデータベースでプロシージャを検索します。
Arg1, Arg2, ...Arg30 省略可能 バリアント型 (Variant) 引数 Procedure で指定した Function または Sub プロシージャに渡す引数を指定します。

戻り値

バリアント型

注釈

このメソッドは、Microsoft Office Access を他のアプリケーションからオートメーション (以前は OLE オートメーションと呼ばれていました) を介して制御する場合に便利です。 たとえば、ActiveX コンポーネントの Run メソッドを使用して、Access データベース内で定義されている Sub プロシージャを実行できます。

他の ActiveX コンポーネントから Access タイプ ライブラリへの参照を設定し、そのライブラリで定義されているオブジェクト、メソッド、プロパティをコードで使用できます。 ただし、Access 以外のアプリケーションから個々の Access データベースへの参照を設定することはできません。

たとえば、 ProjectName プロパティが "WizCode" に設定されたデータベースで NewForm という名前のプロシージャを定義したとします。NewForm プロシージャは、文字列引数を受け取ります。 Visual Basic から次の方法で NewForm を呼び出すことができます。

Dim appAccess As New Access.Application 
appAccess.OpenCurrentDatabase ("C:\My Documents\WizCode.mdb") 
appAccess.Run "WizCode.NewForm", "Some String"

同じ名前の別のプロシージャが別のデータベースに存在する場合は、前の例に示すように、 プロシージャ 引数を、目的のプロシージャが存在するデータベースの名前で修飾します。

Run メソッドを使用して、参照先の Access データベース内のプロシージャを別のデータベースから呼び出すこともできます。

次の例では、Active X コンポーネントとして機能する別のアプリケーションから Access データベース内のモジュールでユーザー定義 Sub プロシージャを実行します。

この例を実行するには、WizCode.mdb という名前の新しいデータベースを作成し、 ProjectName プロパティを WizCode に設定します。 そのデータベースで新しいモジュールを開き、そのモジュールに次のコードを入力します。 モジュールを保存して、データベースを閉じます。

注:

ProjectName を設定する場合は、VBE メイン メニューから [ツール>] [WizCode プロパティ] を選択します。

Public Sub Greeting(ByVal strName As String) 
 MsgBox ("Hello, " & strName & "!"), vbInformation, "Greetings" 
End Sub

この手順を完了したら、Microsoft Excel または Visual Basic から次のコードを実行します。 [ツール] メニューの [参照] を選択し、[参照] ダイアログ ボックスで [Microsoft Access 12.0 オブジェクト ライブラリ] を選択して、Access タイプ ライブラリへの参照を追加していることを確認します。

Private Sub RunAccessSub() 
 
 Dim appAccess As Access.Application 
 
 ' Create instance of Access Application object. 
 Set appAccess = CreateObject("Access.Application") 
 
 ' Open WizCode database in Microsoft Access window. 
 appAccess.OpenCurrentDatabase "C:\My Documents\WizCode.mdb", False 
 
 ' Run Sub procedure. 
 appAccess.Run "Greeting", "Joe" 
 Set appAccess = Nothing 
 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。