VBS createobjectとgetobject<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />実行中のJMPセッションから情報を取得するVBS / VBAスクリプトをpowerpointに書き込もうとしています。
これが基本的なコードです。
サブテスト()
JMP.Applicationとして薄暗いmyjmp
myjmp = CreateObject( "JMP.Application")を設定します。
myjmp.Visible = True
'実行中のjslをテストするためのコード
myjmp.RunCommand( "transfer_data = 35;")
areaHeight = myjmp.GetJSLValue( "transfer_data")
終了サブ
ユーザーが[スタート]メニューまたはデスクトップアイコンを使用して開始したjmpセッションを開いている場合、スクリプトの実行後もJMPセッションは開いたままになります。 ユーザーが.jmpファイルをダブルクリックしてJMPを開始した場合、スクリプトが終了した後にmyjmp.quit呼び出しがなくてもJMPセッションは終了します。
どちらの場合もJMPセッションを開いたままにするにはどうすればよいですか。
その他の注意事項
他のアプリケーションはapp.usercontrol = trueのようなものを持つ傾向があります。あるいは、オープンセッションのオブジェクトを取得するためにset myapp = GetObject(、"application")を使用できます。 (GetObject(、"JMP.Application")はJMP11では機能しません)
これは何もしないようです
myjmp.EnableInteractiveMode True
空のデータテーブルを作成した場合、スクリプトの終了後にjmpセッションは開いたままになります。
dt = myjmp.NewDataTable( "")に設定します。
JMP11.2.1とWindows 7。
日時:createobject対getobject私は、VBSからすべてのjmpオブジェクトを削除し、JSLを使用してvbsに一連の変数を設定して読み込む一時.vbsファイルを作成してデータを渡しました。
Sub IncludeExecuteOptions()
薄暗いfso、f
fso = CreateObject( "Scripting.FileSystemObject")を設定します。
薄暗い一時フォルダー
Const TemporaryFolder = 2
tempfolder = fso.GetSpecialFolder(TemporaryFolder)に設定します。
f = fso.OpenTextFile(一時フォルダー& "\ ExecuteOptions.vbs"、1)に設定します。
str = f.ReadAll
f。閉じる
ExecuteGlobal(str)を呼び出します。
末尾Sub
この方法では、JMPセッションは、開始方法に関係なく開いたままになりました。
日時:createobject対getobjectVisibleが実行されてスクリプトが完了するとすぐにmyjmp変数がスコープ外になるため、これは失敗します。 VBSスクリプトを常駐させて実行する方法が必要です。
ブライアン
日時:createobject対getobjectこんにちは、
私はそれが機能の範囲のためだけであるとは思わない。
このように3行のtest.vbsスクリプトを書くことができます。
薄暗いmyjmp
myjmp = CreateObject( "JMP.Application")を設定します。
myjmp.Visible = True
これは、cscript test.vbsを使用してコマンドラインで実行しても同じ動作になります。 ファイルをダブルクリックしてセッションを開始した場合はセッションが閉じられ、スタートメニューからセッションを開始した場合はセッションが開いたままになります。
日時:createobject対getobjectこんにちはキース、
関数のスコープ内でJMP.Application変数が定義されているため、JMPセッションは終了していると思います。 範囲外になると、オブジェクト参照は削除され、JMPにシャットダウンするよう指示します。 変数を定義する場所が他にある場合は、おそらく開いたままになります。 Excelの場合は、Workbook Load関数で定義しても問題ありません。 それをどこに置くべきかをあなたに伝えるのに十分なPowerPointの経験がありません。 あなたがこのアプローチをするならば、あなたが本当にそれを消滅させたいときにJMP.Quitを呼ぶように注意しなければならないでしょう。
ブライアン・コーコラン
JMP開発