IronPython 1.1をホストするExcelアドインを作成していて、Excel.ApplicationCOMオブジェクトをPythonEngineインスタンスに提供したいと考えています。
私のC#はCOMオブジェクトのメンバーに問題なくアクセスできます。ただし、IronPythonスクリプトがCOMオブジェクトのメンバーにアクセスすると、「System.ArgumentException:タイプ「System.Int32」のオブジェクトをタイプ「System.UInt32&」に変換できません」というメッセージが表示されます。
これがIronPython1.1をホストしている私のC#コードです:
public void ExecuteFile(string path) {
// see if COM object works
Debug.WriteLine(Globals.ThisAddIn.Application.ActiveWindow.Caption);
engine.Globals.Add("excel", Globals.ThisAddIn.Application);
try
{
engine.ExecuteFile(path);
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
これが私のIronPythonテストスクリプトです。
excel.ActiveSheet.Range['A1'].Value2 = 42
//上記の例外をスローします