JMP - Excel VBA オートメーションこんにちは。JMP オートメーションを使用して、「SelectRowsWhere」関数を使用して選択されたデータに基づいて特定の行番号を取得していますが、行番号の値を取得できませんでした。行番号を取得する他の方法はありますか。私のコードの下を参照してください。
サブ getrownum()
MyJMP を JMP.Application として暗くする
Dim JMPDoc As JMP.Document
JMP.DataTable としてのディム DT
Set MyJMP = CreateObject("JMP.Application")
Set JMPDoc = MyJMP.OpenDocument("D:\JMP Main Data Table\TestData.jmp")
MyJMP.Visible = True
DT = JMPDoc.GetDataTable を設定します。
Col1 = JMPDoc.GetDataTable.GetColumn("日付") を設定します。
'DT.SelectRows 102056、102057
'行番号102065を取得するには??
DT.SelectRowsWhere "Date"、rowSelectEquals、rowSelectClearPrevious、"3565986300"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1selectedrow
エンドサブ
- バラ
Re: JMP - Excel VBA オートメーションこんにちは、ブライアン・コーコランさん
ご返信ありがとうございます。はい、サンプルとして「Data Table .NET」を使用しています。 以前の問題は、「SelectRowsWhere」を使用して行インデックス (行番号) 値を取得できなかったことです。これは、値の型が原因である可能性があります。 コードを次のように変更したところ、目的は解決されました。
' **DT.SelectRowsWhere "Date"、rowSelectEquals、rowSelectClearPrevious、"3565986300"**
DT.SelectRowsWhere "Date"、rowSelectEquals、rowSelectClearPrevious、"12-31-2016 12:00:00 AM"
noofrowselected = DT.GetNumberOfRowsByRowState(rowStateSelected)
nn = DT.EnumRowStatesBegin(rowStateSelected)
n1selectedrow = DT.EnumRowStatesGetNextRow()
n2selectedrow = DT.EnumRowStatesGetRowByIndex(1)
getronumff = n1selectedrow
Re: JMP - Excel VBA オートメーション個々の列値が必要な場合は、データ テーブル オブジェクトから列オブジェクトを取得し、それに対して GetCellVal を呼び出す必要があることにも言及しておきます。
例えば:
Col = DT.GetColumn("年齢")
val = Col.GetCellVal(インデックス)
Re: JMP - Excel VBA オートメーションこんにちは、バラさん
JMP に同梱されている「Data Table .NET」サンプル プログラムを見てみましょう。 JMP 13 の場合、これは C:\program files\sas\jmp\13\Samples\Automation\Visual Basic Samples の下にあります。 これを行うには、いくつかの方法があります。 1 つは、Enum です。 サンプルには、必要な機能を実行する Enum Selected というボタンが含まれています。 関連するコードは次のとおりです。
NSelected = DT.EnumRowStatesBegin(JMP.rowStateConstants.rowStateSelected)
For i = 1からNSelectedまで
MsgBox(DT.EnumRowStatesGetNextRow, MsgBoxStyle.OkOnly, "次の選択行は")
次は私
「選択されたベクトルの取得」の例も見ることができます。 これは、GetRowStateVector 呼び出しを使用して、インデックスによって選択されたすべての行の配列を返します。
別の例である「選択されたデータの取得」では、GetRowStateVectorData を使用して、インデックスではなく基礎となるデータ値を返します。
それが役立つことを願っています。
ブライアン・コーコラン
JMP開発