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);