GraphPad Prism  6 ユーザーズガイド

Prism 外からの Prism スクリプトの起動 (Windows 版)

Prism 外からの Prism スクリプトの起動 (Windows 版)

Previous topic Next topic No expanding text in this topic  

Prism 外からの Prism スクリプトの起動 (Windows 版)

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

スクリプトを起動する 1 つの方法としては Prism 内からの起動があります (「ファイル」[File] メニューを表示して 「スクリプトの実行」[Run Script] を選択)。Prism 外から Prism スクリプトを起動することもできます。この方法で Prism を起動する際、スクリプトによって開いている Prism ファイルをすべて閉じるように指定している場合は、スクリプトの終了時に Prism が終了します。そうでない場合、Prism は開いたままの状態になります。

デスクトップ アイコンからの Prism スクリプトの起動

Prism スクリプトを起動するアイコンを作成するには、マウス ポインターをデスクトップ上で空いている箇所に置き、右マウス ボタンをクリックして [新規作成]...[ショートカット] の順に選択します。Prism を起動し、起動する Prism スクリプト ファイルを指定するコマンド ラインを入力します。スクリプト名のパスの先頭に @ 記号を含めます。いずれかのパスにスペースが含まれる場合は、下記に示すようにパス全体を引用符で囲みます。

“C:\PRISM5\PRISM.EXE” @”C:\PROGRAM FILES\PRISM 6\SCRIPTS\DOIT.PZC”

他のプログラムから Prism へのシェル

"シェル"とは、単にあるプログラムを他のプログラムから起動するこです。下記は Excel VBA マクロ内のシェル コマンドの例です。

Shell ("C:\prism 5\prism.exe @C:\prism 6\dr2.pzc")

シェル コマンドでは、prism.exe の完全なパスと Prism で起動されるスクリプトの両方が指定される必要があります。スクリプトの先頭に @ 記号を含めます。

下記の 2 つの重要な点に注意してください。

Prism はバックグラウンドで起動します。完了しても Prism は画面上には表示されません。
Visual Basic によって Prism が起動されるとすぐに、Visual Basic プログラムまたはマクロの次のステートメントに移ります。Prism の完了を待たずに続行されます。下記の追加処理を行わない場合、Prism で結果を含めるファイルの作成を完了する前に、Visual Basic プログラムはこのファイルを読み取ろうとします。これを回避するには、下記で説明するように、Prism でファイルが作成されるまで Visual Basic プログラムが一時停止するようにします。

Prism スクリプトを記述する際、処理が完了したことを Visual Basic に伝えるファイルを作成する行をスクリプトの最後に含めます。下記の例では done.txt が作成されます。

OpenOutput  "done.txt"

WText "done"

CloseOutput

Visual Basic コードで、まずファイル done.txt (前回の実行時に作成されている場合) を削除してから Prism を起動します。その直後に、done.txt が作成されるまでプログラムをループさせる下記の行を含めます。

Do Until Dir$(“C:\prism 6\done.txt") > ""

Application.Wait Now + TimeValue("00:00:1")

Loop

上記の例の最初の行では、ファイル done.txt が存在するかどうかチェックします。必要に応じてパスとファイル名を変更します。ファイルが存在する場合 (Prism が終了)、Visual Basic はループの後に続くコードに進みます。ファイルがまだ存在しない場合は、Visual Basic は 1 秒間待ってからファイルが存在するかどうかの再チェックに戻ります。

OLE オートメーションを使用した他のプログラムからの Prism の起動

シェル コマンドに代わる方法としては、OLE (または Active X) オートメーションを使用して Prism を起動する方法です。以下に例を示します。

Set Prism = CreateObject("Prism.command")

Prism.SetPath (”C:\data\july99”)

Prism.visible

Prism.runcommand (“c:\prism5\doseresp.pzc")

Prism.quit

Set Prism = Nothing

最初の行で、Prism コマンド オブジェクトが作成されます。オブジェクトの変数には任意の名前を指定できますが (= 記号の左側)、Prism と名付けると便利です。prism.exe のパスを指定する必要はありません。Windows でレジストリを介して自動的に特定されます。

2 行目はオプションですが、使用するフォルダーを指定します。これを指定すると、Prism スクリプト内に SetPath ステートメントを含めるが必要がなくなります。スクリプトを実行する際、このディレクトリ (フォルダー) 内のデータ ファイルおよびテンプレートがまず検索されます。フォルダー名を引用符で囲むか、テキスト変数を使用します。

3 行目では、Prism に進捗ダイアログを表示するように指定します。コードをテストした後、この行を削除します。これにより、Prism はバックグラウンドで実行されるようになります (ダイアログは表示されない)。

4 行目では Prism スクリプトを起動します。スクリプト ファイルの完全パスを含めるようにします。SetPath メッセージ (上記参照) で使用したディレクトリは自動的には使用されません。

最後の 2 行では、Prism を終了し、Prism オブジェクトで使用されていたメモリを解放します。

Shell ステートメントの代わりに OLE オートメーションを使用することには 2 つの利点があります。1 つ目は、OLE オートメーションによって Visual Basic と Prism を順番に実行でき、まだ作成されていない結果を取得しようという試みが Visual Basic 側で行われる可能性がなくなります。2 つ目は、OLE オートメーションを使用すると、Prism スクリプトを変更しなくても、特定のフォルダーからデータをインポートするようにVisual Basic プログラムで Prism に指定できます (Prism.SetPath コマンド)。

イントラネットの Web ページからのスクリプトの起動 (Windows 版)

イントラネットの Web サイトのリンクから Prism を起動できます。

まず、プログラムおよび各構成ファイルを呼び出す (Call コマンドを使用) バッチ ファイルを Web サーバーで作成します。

たとえば、下記に示すような 1 行を含む StartPrism.bat というファイルを作成します。

Call “N:\Program Files\PRISM5\PRISM.EXE” -OC:\WINDOWS\prism5.cnf

または

Call F:\Prism\Prism.exe @"F:\PRISM\PRISMSCRIPTS\DOIT.PZC"

もちろん上記の例は Prism のインストール場所に応じて調整する必要があります。ドライブ文字はサーバー ドライブのエイリアスです。1 番目の例では、最初の部分で Prism を開き、2 番目の部分で Prism に構成ファイルを検索する場所を指定します。2 番目の例では、2 番目の部分で Prism スクリプトを起動します。

次に、Web ページを編集してこのバッチ ファイルへのハイパーリンクを含めます。たとえば HTML で、テキスト "Prism" をファイル StartPrism.bat にリンク付けます。