FileMaker Pro ActiveX オートメーションの使用 (Windows)
タイプライブラリには、FileMaker Pro により渡されるオブジェクト、プロパティ、メソッドが記述されているので、その他の ActiveX クライアントから FileMaker Pro にアクセスすることができます。
FileMaker Pro タイプライブラリは、FileMaker Pro 実行可能ファイルに含まれています。独立したファイルではありません。FileMaker Pro をインストールすると、FileMaker Pro タイプライブラリがコンピュータに登録されます。
このライブラリを追加する方法は、ActiveXオートメーションオーサリングツールにより異なります。作業方法がわからない場合は、ActiveX オートメーションオーサリングツールのドキュメントを参照してください。Microsoft Visual Basic では、次のようにしてライブラリを追加します。
2.
|
[FileMaker Pro タイプライブラリ] の左側にあるチェックボックスを選択します。
|
プロジェクトリファレンスに FileMaker Pro ライブラリが追加されると、「
FMPro70Lib」 がVisual Basic オブジェクトブラウザに表示されます。これで、オートメーションコントロールに対して FileMaker Pro から渡されるオブジェクト、メソッド、プロパティがすべて使用可能になります。
FileMaker Pro を制御するための ActiveX オートメーションスクリプトやアプリケーションを作成するたびに、FileMaker Pro を Application オブジェクトとして宣言します。宣言は、他の定義とともにオートメーションドキュメントの先頭で、1行のコードに記述します。
Dim FMProApp as FMPro70Lib.Application
FileMaker に対するオートメーション呼び出しを作成するには、まず、FileMaker Application オブジェクトにアクセスする必要があります。アクセスする方法は2つあります。CreateObject または GetObject を呼び出します。
Dim FMProApp as FMPro70Lib.Application
Set FMProApp = CreateObject("FMPRO.Application")
Set FMProApp = GetObject(, "FMPRO.Application")
カッコの直後にあるコンマ(,)に注意してください。 これは、GetObject の最初の引数、つまりディスクファイルへのパスが省略されていることを表します。GetObject では最初の引数としてファイル名を使用することがあるので、コンマが必要になります。ただし、FileMaker Pro のインスタンスを取得する場合は、引数にファイル名を指定すると、エラーが発生することがあります。
ActiveX オートメーションを使用して FileMaker Pro スクリプトを実行するには、変数としてスクリプト名を指定した上で DoFMScript 関数を呼び出します。
Dim FMProApp as FMPro70Lib.Application
CreateObject("FMPRO.application")
Dim FMProDocs, FMProDocs.Open("c:\MyFile.fmp12","","")
Dim FMProDoc
FMProDoc.DoFMScript ("MyScript")
Set FMProDoc = nothing
デフォルト(初期設定)では、オートメーションによって起動された FileMaker Pro は表示されずに実行されます。Visible プロパティを使用して、FileMaker Pro の表示または非表示を切り替えることができます。
オートメーションオブジェクトを参照すると、参照カウントが増えて、FileMaker Pro に対し、このオブジェクトを使用しているプロセスがあることが通知されます。Visual Basic では、宣言された変数に FileMaker のオブジェクトを設定するたびに、オブジェクトの参照がカウントされます。 たとえば次のようになります。
Dim FMDocs As FMPro70Lib.Documents
Set FMDocs = FMApp.Documents
Set FMDocs2 = FMApp.Documents
参照カウントがすべて解放されるまで、FileMaker は終了できません。Visual Basic では、このオブジェクト変数を「Nothing」に設定することで、参照カウントを解放することができます。 たとえば次のようになります。
FileMaker Pro では、
Documents.Open(ファイル名 As String, アカウント名 As String, パスワード As String) メソッドを使用します。引数「
アカウント名」と「
パスワード」が空の文字列である場合、ファイルはクライアントユーザとして開きます。
オートメーションにより直接呼び出された FileMaker Pro スクリプトは、互いに干渉しあう可能性があります。
他の FileMaker Pro スクリプトから呼び出された FileMaker Pro スクリプトは、スクリプトに記述されている順序で実行されます。
ActiveX オートメーションだけを使用して、ホストされたファイルを開くことはできません。ホストされたファイルをオートメーションを使用して開くには、FileMaker Pro の [ファイルを開く] ダイアログボックスで直接このファイルを開くか、オートメーションを使用してファイルにアクセスするか、またはこのファイルを開くための FileMaker Pro スクリプトを記述してから、オートメーションを使用してこのスクリプトを呼び出します。