チャートはVBAの制御下で起動していない、どうやって修正しますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />VBA自動化 スクリプトが終了するまでチャートは起動しません。 スクリプトの実行中にそれらを確認する必要があります。これを修正する方法はありますか?
また、私は関連していると思います。マクロはいくつかのチャートを作成します。 しかし、一見ランダムにそれらのいくつかは起動に失敗します。 ホームウィンドウのウィンドウリストに表示されますが、手動で起動するまで表示されません。 私は何か悪いことをしていると思いますが、それが何であるかわからない。
ご協力ありがとうございます。
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?私はこれが好ましいと思います。サブルーチンでJMPインスタンスを作成して終了時にアプリケーションポインタを無効にすると、自動化に問題が生じる可能性があります。JMPインスタンスを作成し、それを渡して、そのライフタイムがフルオペレーションの期間にわたって持続することを確認することが、通常最良の方法です。
あなたの場合は、基盤となるウィンドウの初期化がおそらく問題になります。あなたの新しいアプローチはそれらを作成するためにより多くの時間を与えるように思われるので、あなたがそれらを目に見えるようにしたとき初期化は完了し、素早い終了は物事を傷つけません。
ブライアン
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?私は問題を発見したかもしれません、おそらくあなたはコメントできます。
コードはチャートの配列を生成してから、起動されて表示されるチャートの配列を送信していました
これは不安定であり、タイミングに依存することが判明しました。 つまり、データテーブルが大きくなると失敗する可能性が高くなります。
ループ
チャートを生成する(インデックス)
次
ループ
チャート(インデックス)。ローンチ
チャート(インデックス).Visable = True
次
生成時にチャートを起動し、チャートの配列を送信して表示できるようにしました。
これまでのところ、異常な行動は見られませんでした
ループ
チャートを生成する(インデックス)
チャート(インデックス)。ローンチ
次
ループ
チャート(インデックス).Visable = True
次
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?これは私にとっては難しいかもしれません。 私は目に見える呼び出しの後に実際のLaunchChartsサブルーチンでSleepを試みることを提案するでしょう。 最後に変数をNothingに設定することは、良い習慣ではありますが、変数を閉じることができることを意味します。
ブライアン
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?さらにSleep()を追加することで、さらに悪化させることができます。 この設定では通常、最初のチャートを起動できませんが、それ以降のチャートはすべて起動します。
Sub GenChartsReview(バリアントとしてフィルタ、_
バリアントとしてのグループ、_
バリアントとしてのIter1、_
バリアントとしてのIter2、_
バリアントとしてのIter3、_
バリアントとしての統計、_
ブール値として繰り返す)
薄暗いAPPjmp、TBLjmp、DOCjmp
GetJMP APPjmp、TBLjmp、DOCjmp
文字列としての薄暗いテキスト
ブール値としての成功
Dim Stat、A、B、C、インデックス、PlotIndex、RowFilter()
JMP.Variabilityとして薄暗いVChart()
それから繰り返すなら
IsReal(Iter1)ならばVChart((UBound(Iter1、2)+ 1))をReDim
IsReal(Iter2)の場合、次にVChart(UBound(VChart)*(UBound(Iter2、2)+ 1))を再計算します。
そうでなければ
ReDim VChart(1)
終了の場合
インデックス= 0
A = 0からUBoundまで(Iter1、2)
B = 0からUBoundまで(Iter2、2)
成功=真
RowFilter()を消去します。
AddFilters RowFilter、フィルター
ClearRowStates TBLjmp
IsValid(RowFilter)の場合はSuccess = ExcludeGroup(RowFilter、TBLjmp)
DoEvents
それから繰り返すなら
IsReal(Iter1)の場合、IncludeItem Iter1(0、A)、Iter1(1、A)、TBLjmp
DoEvents
IsReal(Iter2)の場合、IncludeItem Iter2(0、B)、Iter2(1、B)、TBLjmp
DoEvents
終了の場合
VChart(Index)= DOCjmp.CreateVariabilityChartに設定します。
成功した場合GenerateVarCharts VChart(インデックス)、統計、グループ
DoEvents
インデックス=インデックス+ 1
スリープ200
次
次
スリープ500
成功すれば
LaunchCharts VChart
そうでなければ
DialogAndLive "プロットするデータがありません。フィルタ項目は選択されていますか?"
終了の場合
DoEvents
ClearRowStates TBLjmp
APPjmp = Nothingを設定します。
TBLjmp = Nothingを設定します。
DOCjmp = Nothingを設定します。
終了サブ
Sub LaunchCharts(JMP.VariabilityとしてのVChart())
薄暗いA
A = 0からUBoundまで(VChart) - 1
VChart(A)起動
VChart(A).Visible = True
次
終了サブ
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?"Advanced Editor"を使用している場合は、左下に[添付]アイコンがあります。 あるいは、VBコードを貼り付けるだけで、自分が何をしているのかを知ることができます。
ブライアン
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?こんにちはブライアン、
私はきっとあなたの助けに感謝します。 私は何かをつけるための条項を見つけません。
再:チャートはVBAの制御下で起動していない、どうやって修正しますか?こんにちは、
あなたがそれを投稿したとき、私はどういうわけかこれを見逃していることをお詫び申し上げます。 使用しているVBAソースコードを教えてください。一般に、タイミングの問題があるときにコード内でsleep()を呼び出すと、ウィンドウを作成するための分析時間を与えることなどに役立ちます。 JMPに付属の分析自動化サンプル・プログラム(c:¥program files¥sas¥jmp¥13¥Samples¥Automation¥Visual Basic Samples¥Analysis.NET)は、スリープ呼び出しのセットアップ例を示しています。 オペレーティングシステム関数を呼び出していることを宣言する必要があります。 私はパスの例として13を使用していますが、このコードはJMPの最後の5つのバージョンで出荷されました。
私はそれが役立つことを願っています、
ブライアン・コーコラン
JMP開発