1. テスト用の1D配列データの作成
下記のスクリプトを実行し、1から1000000までの数字が並んだ配列を作成します。大きな配列を作成するのでやや時間がかかります。
Call Data.Root.Clear()
Call Data.Root.ChannelGroups.Add("MyChannelGroup")
Dim oMyGrp, oMyChn, i
Set oMyGrp = Data.Root.ChannelGroups(1)
Set oMyChn = oMyGrp.Channels.Add("Xaxis",DataTypeFloat64)
For i = 1 to 1000000
oMyChn(i) = i
Next
2. ChnFindの関数の挙動を確認します。
Dim sFormula, aSymbol(2), aValues(2), Result
sFormula = "A = B"
aSymbol(1) = "A"
aSymbol(2) = "B"
Set aValues(1) = Data.GetChannel("[1]/[1]")
aValues(2) = 11
Result = ChnFind(sFormula,,aSymbol, aValues)
Call MsgBox(Result)
こちらのスクリプトを実行すると即座にメッセージボックスが立ち上がり、11というメッセージが表示されます。次にDIAdem VIEWにおいてData PortalのXaxisのデータの11番目の要素を手動で11以外の数字に変更し、最後の方の要素を11にして再度上記のスクリプトを実行すると、検索に時間はかかるものの11に変更した部分のインデックスが表示されます。11が複数個存在する場合、最初の11が検出されるまでChnFindは要素を探す挙動も確認できます。