Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。こんにちは皆さん、
以下のスクリプトは、次のことを想定しています: VBA コードを実行して、Excel ワークブック データを JMP テーブルにコピーします (JMP ライブラリ jmp.tlb を使用)。 最初の部分は、参照 JMP を Excel にロードして、JMP 自動化に関連する機能を実行できるようにすることを目的としています。 2 番目の部分では、すべてのワークブック シートを JMP データ テーブルにエクスポートします。 このコードを実行すると、次のエラーが表示されます。
MyJMP を JMP.Application として薄暗くするライン。最初の部分を単独で実行すると、コードは機能します。JMP 参照にチェック マークが設定されます (VBA エディターのツール>>参照の下)。 2番目の部分を実行すると(ツール>>参照の下でJMPのチェックマークを手動で設定した後)、それも機能します。 したがって、私は何が間違っているのか理解できません。 どんな助けでも感謝します:)どうもありがとう!
エドゥアルド
サブエクスポート()
'JMP参照を追加
'パート1
エラー時再開次へ
Application.VBE.ActiveVBProject.References.AddFromFile _
"C:\Program Files\SAS\JMP\12\jmp.tlb"
エラー時 GoTo 0
'この部分は、Excel ワークブックのすべてのタブをテーブルとして JMP にエクスポートします
'パート2
MyJMP を JMP.Application として薄暗くする
JMPdoc を JMP.Document として暗くする
Set MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName) を設定します。
JMPdt を JMP.DataTable として暗くする
JMPdt = JMPdoc.GetDataTable を設定します。
サブ終了
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。追加します@マークベイリーApplication Builder のドキュメントを参照してください。
ヘルプ==>書籍==>スクリプト ガイド
「アプリケーションの作成」の章を探してください。
Application Builder を使用する以外に、JMP Scripting Language には、必要な UI を構築できる表示オブジェクトの完全なセットがあります。例は、JMP に付属のサンプル スクリプトとアプリ、および JMP Web サイトの JMP ファイル エクスチェンジで利用できる多くの JMP アドインにあります。
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。選択するファイル>新しい>応用.
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。なぜ JMP は JMP 内でカスタマイズ可能な Windows フォームまたは UI を作成するためのプラットフォームを開発しないのか、VB を使用する理由は、データ抽出、データ処理、およびデータ分析を一緒に完全に自動化したいからです。
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。Visual Basic を使用した JMP の自動化に関する JMP のドキュメントを読みましたか? そうでない場合は、ここから始めるのが最適です。 (Documentation フォルダー内の Automation Reference PDF を参照してください。)サンプル コードについては、Samples/Automation フォルダーを参照してください。
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。こんにちは、みんな、
Visual Basic を使用して JMP を自動化するためのコードを探しています。
完了した人は、私と共有してください。 このトピックに関するご協力に感謝します。
ありがとう。
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。export Sub を VBScript ファイルに移動してみませんか? これら 2 つのタスクを同時に実行すると問題が発生するようです。
VBScript 内から COM インターフェイス (jmp.tlb タイプ ライブラリなし) を使用して、JMP を自動化できます。 これをチェックしてください白書VBScript を使用した例を含む、この方法での JMP の自動化に関する情報については、 を参照してください。
ただし、プログラム フローを見ると、Excel ワークシートを JMP テーブルにインポートしようとしているように見えます。 その場合は、Open() 関数を使用してインポートを実行できます。
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。こんにちは、みんな、
問題がどこにあるかを絞り込むことができました. 私はすべてを単純化しました。 これで、次のマクロを含むマクロ有効の Excel ワークブックができました。
サブエクスポート()
MyJMP を JMP.Application として薄暗くする
JMPdoc を JMP.Document として暗くする
Set MyJMP = CreateObject("JMP.Application")
MyJMP.Visible = True
JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName) を設定します。
サブ終了
このマクロを実行するとエクセルから、それはそれがするべきことをします。 ワークブックのシートを JMP テーブルとして JMP にエクスポートします。
それから私はまた以下を持っていますVBS スクリプト次のコードを使用します。
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\test.xlsm")
objExcel.Application.Visible = True
objExcel.Application.Run "ref" ---> これにより jmp.tlb がロードされます
objWorkbook2 = objExcel.ActiveWorkbook を設定します。
objExcel.Application.Run "export" ---> これにより、問題を引き起こしているマクロが実行されますVBS からの呼び出しの場合
objworkbook2.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "終了しました。"
WScript.Quit
最後に、次の1行がありますJMP スクリプト:
rp = RunProgram( Executable( "WSCRIPT.EXE" ), Options( "\!"\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\exportJMP.vbs\!"" ),読み取り関数("テキスト"));
これですべてが実行されます: 私は自分のJMP スクリプト、それは私のVBS スクリプト、最後に Excel マクロを実行します。輸出. しかし、実行するとマクロのエクスポート全体がハングし、Excel は次のメッセージを生成します。 Microsoft Excel は、別のアプリケーションが OLE アクションを完了するのを待っています....JMP のホイールが回転している間:)
どんな助けでも大歓迎です! ありがとう!
Re: Visual Basic による JMP の自動化: Excel データを JMP データ テーブルにコピーします。こんにちは、みんな、
私は自分の問題の解決策を見つけましたが、別の問題を解決しました。 私がやろうとしているのは次のとおりです。JMP スクリプトは VBS スクリプトを呼び出します。 VBS スクリプトは、Excel アドインを実行します。 Excel アドインは、データ ファイルを取得して処理し、ワークブックを生成します。 次に、VBS が続行され、ワークブックに 2 つのマクロが導入されます。 1 つのマクロは JMP 参照 (jmp.tlb) をアクティブにするためのもので、2 つ目は最終的にワークブックのすべてのシートを JMP テーブルとしてエクスポートするためのものです。 私は JMP コードと VBS コードを以下に添付しました (これはおそらく他の人にとって興味深いものです)。 アドインが実行され、ワークブックが作成されますが、ハングします (Excel は後で表示されます。Microsoft Excel は、別のアプリケーションが OLE アクションを完了するのを待っています)。 次に、runprogram コマンドの構文を変更しようとしました。Read 関数 ("text") を記述する代わりに、Read 関数 () を記述しました。 全体が実行されます (VBS から "Finished" メッセージが表示されます) が、runprogram コマンドの後に来るものは機能しません。 JMP スクリプトを実行した瞬間から、ntables=0 になります。 JMP スクリプトは VBS スクリプトを実行し、runprogram コマンドの後に続くものを並行して実行するように見えます。その時点ではテーブルがないため、ntables=0 です。 理解できない。 runprogram コマンドの使い方が間違っていると思いますが、それが私の問題です。 簡単なものに違いないが、それを見つけることができない。 どんな助けでも大歓迎です!ありがとう!
ファイル呼び出し myAddin.vbs
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\eduret\AppData\Roaming\Microsoft\AddIns\Gamma Tools.xla")
objExcel.Application.Visible = True
objExcel.Application.Run "'Gamma Tools.xla'!Pics"
objWorkbook2 = objExcel.ActiveWorkbook を設定します。
xlmodule = objworkbook2.VBProject.VBComponents.Add(1) を設定します。
strCode = _
"sub ref()" & vbCr & _
「エラーで次に再開」 & vbCr & _
"Application.VBE.ActiveVBProject.References.AddFromFile _" & vbCr & _
"""C:\Program Files\SAS\JMP\12\jmp.tlb""" & vbCr & _
"On Error GoTo 0" & vbCr & _
「エンドサブ」
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "ref"
xlmodule = objworkbook2.VBProject.VBComponents.Add(1) を設定します。
strCode = _
"サブ エクスポート()" & vbCr & _
"Dim MyJMP As JMP.Application" & vbCr & _
"Dim JMPdoc As JMP.Document" & vbCr & _
"Set MyJMP = CreateObject(""JMP.Application"")" & vbCr & _
"MyJMP.Visible = True" & vbCr & _
"Set JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)" & vbCr & _
"Dim JMPdt As JMP.DataTable" & vbCr & _
"JMPdt = JMPdoc.GetDataTable に設定" & vbCr & _
「エンドサブ」
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "エクスポート"
objworkbook2.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "終了しました。"
WScript.Quit