FAQ
FAMOS
シーケンス / 関数top
└カーブウィンドウ
ID.s009
Q. カーソルを使って値を取得する方法
A.
カーソル位置の値を取得し、Excelにデータを転送します。
カーソルを使って値を取得すると、測定ポイントからずれるので修正しています。
;-----------------------------------------------
;ファイルの指定
;-----------------------------------------------
filename = DlgFileName("c:\imc\dat", "dat", "ファイルを開く", 0)
If TLeng( filename)=0
del FileName
ExitSequence
Else
FAMOS
Load <filename>DATA
del filename
Show DATA
End
;-----------------------------------------------
;ウィンドウ設定
;-----------------------------------------------
CvWin( DATA, 9) ;カーソルのみを表示
CvWin( DATA, 3) ;オーバービューウィンドウを表示
CvWin( DATA, 10) ;ナビゲータを表示
CvXAxis( DATA, XOff?(DATA), XOff?(DATA)+Leng?(DATA)/10*XDel?(DATA), 0)
CvYAxis( DATA, DATA, 0, 0, 0, 50000+4000+200, -2)
;-----------------------------------------------
;ダミーデータ
;-----------------------------------------------
P_X = Leng( 0, 0)
P_Y = Leng( 0, 0)
Point = XYOf( P_X, P_Y)
CvYAxis( DATA, Point, 0, 0, 0, 70000+5000+400, -2)
;-----------------------------------------------
;コメント文字列
;-----------------------------------------------
crlf = TAdd( SvToChar(0x0d), SvToChar(0x0a))
Text = TAdd( "カーソル位置が決定したら<再試行>ボタンを押してください。", crlf)
Text = TAdd( text, "シーケンスを終了する場合、<キャンセル>ボタンを押してください。")
exit=1
While exit
err = BoxMessage("",Text, "!3")
If Err=0
;-----------------------------------------------
;キャンセルならシーケンスを終了
;-----------------------------------------------
exit=0
Else
;-----------------------------------------------
;継続する場合、データを取得してExcelに転送
;-----------------------------------------------
xLeft = CvCursor(DATA,1)
xLeft = xLeft-Mod((xLeft-XOff?( DATA)), XDel?( DATA)) ;測定点に値を設定
P_X = Join( P_X, xLeft) ;測定点をカーブウィンドウに表示
P_Y = Join( P_Y, Value( DATA, xLeft))
Point = XYOf( P_X, P_Y)
Cell_1 = TAdd( "R", TForm( exit, "F00")) ;Excelに転送
Cell_N = TAdd( Cell_1, "C1")
err = DDESet( "Excel","Sheet1", Cell_N, TForm( exit, "F00"), 1)
Cell_N = TAdd( Cell_1, "C2")
err = DDESet( "Excel","Sheet1", Cell_N, xLeft, 1)
Cell_N = TAdd( Cell_1, "C3")
err = DDESet( "Excel","Sheet1", Cell_N, Value( DATA, xLeft), 1)
exit = exit+1
End
End