IronPython で EXCEL のグラフを自動作成させてみるテスト

Excel 2007 + IronPython 2.0A4 で動作を確認.

# ipy.exe -X:PreferComDispatch -X:TabCompletion
import clr
from System import Type, Activator
t = Type.GetTypeFromProgID('Excel.Application')
e = Activator.CreateInstance(t)
e.Visible = True
w = e.Workbooks.Add()
s = w.ActiveSheet
s.Cells[1, 1].Value = 'hoge'
s.Cells[1, 2].Value = 'value'
for y in range(2, 10):
  s.Cells[y, 1].Value = y
  s.Cells[y, 2].Value = y * 3

''' *** VBA Macro の場合 ***
Range("A1:B9").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$1:$B$9")
ActiveChart.ChartType = xlLineMarkers
ActiveChart.Location Where:=xlLocationAsNewSheet
'''

xlLineMarkers = 65
xlLocationAsNewSheet = 1
xlValue = 2 # xlCategory = 1, xlSeriesAxis = 3

s.Range("A1:B9").Select()
s.Shapes.AddChart().Select()
a = w.ActiveChart
a.SeriesCollection(1).XValues = "=Sheet1!$A$2:$A$9"
a.Axes(xlValue).MaximumScaleIsAuto = True
a.SetSourceData(e.Range('Sheet1!$B$1:$B$9'))
a.ChartType = xlLineMarkers
a.Location(xlLocationAsNewSheet)

何故か下記のように途中でエラーが出るけど、とりあえず動くので様子見. IronPython もアルファ版だし...

>>> a.SetSourceData(e.Range('Sheet1!$B$1:$B$9'))
Traceback (most recent call last):
  File , line 0, in ##59
  File , line 0, in _stub_##61
SystemError: オブジェクト参照がオブジェクト インスタンスに設定されていません。

追記: IronPython 2.0A5, A6 では全く動かなくなっていましたが、2.0A7 でエラー無しで動くようになりました.