VB.NETをはじめとする.NETアプリケーションから、Excelにデータを出力する場面は多いことだろう。そこでちょっとハマったので報告。

Excelにdecimal型数値は貼り付けられない、らしい

私の場合、Excelの範囲(Range)に対してVB.NETの配列を貼り付けるところでハマった。

下記コードはエラーになる。

エラーメッセージは下記のような感じだ。

ArgumentExceptionはハンドルされませんでした。
値が有効な範囲にありません。

私の場合、これの原因は「decimal型をExcelに貼り付けようとした」ことであった。
どうも、Excelへは、.NETのdecimal型数値は貼り付けられないらしい。

上記の配列DSArrのdecimalをdoubleにしたら解決した。