Excelの罠シリーズ。
Excel2007で正常に動作したコードが、Excel2003だとなぜか動かないので原因を調査したら、Shepe内のテキストを中央揃えにする際に、テキストが無い状態で中央揃えにしようとするとエラーになるという原因だったっぽい。
順番を入れ替えるとエラーは発生しなくなった。
Excel2007では上のコードでも動作した。
エラーの発生するコード
oShapes = oSheet.Shapes oTextFrame = oShape.TextFrame oTextFrame.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter ' ここでエラー発生 oTextFrame.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter oCharacters = oTextFrame.Characters oCharacters.Text = sText
動作するコード
oShapes = oSheet.Shapes oTextFrame = oShape.TextFrame oCharacters = oTextFrame.Characters oCharacters.Text = sText oTextFrame.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter ' エラーは発生しない oTextFrame.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter