C#で岡三RSSの発注をする
NEWORDER メソッドを呼んでみたが、予想よりも簡単にできた。
すでに開いているワークブックのアタッチとイベントハンドラーの追加登録はつぎのとおり。
using Excel = Microsoft.Office.Interop.Excel; ... Excel.Workbook workbook = (Excel.Workbook)Microsoft.VisualBasic.Interaction.GetObject( @"C:\foo\株価ボード.xlsb", null); workbook.SheetCalculate += new Excel.WorkbookEvents_SheetCalculateEventHandler( workbook_SheetCalculate);
イベントハンドラーの定義はつぎのとおり。このイベントハンドラーは板情報や注文照会の変更を捉えるためのものである。発注後に起きる注文照会には使うが、発注自体には使わない。
private void workbook_SheetCalculate(object Sh) { Excel.Worksheet worksheet = (Excel.Worksheet)Sh; Console.WriteLine("workbook_SheetCalculate: " + worksheet.Name); }
発注用のマクロ(NEWORDER)の呼び出し。
object ret = workbook.Application.Run("岡三RSS.NEWORDER", "9448", "東証", "3", "1", "1800", "1", "T", "", "0", "1", "1", "xxxxxxxx", "N" + (orderCount++), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Console.WriteLine("ret = " + ret);