■103056 / 親階層) |
vbからExcelの計算式が書かれた帳票を出力したい。 |
□投稿者/ ヒノザル (1回)-(2024/04/11(Thu) 14:45:58)
|
分類:[VB.NET/VB2005 以降]
2024/04/11(Thu) 15:31:28 編集(投稿者) 2024/04/11(Thu) 15:31:18 編集(投稿者)
vb.netはvisualstudio2015です。 使用しているDBはSQLserver Excelはxltxファイルからxlsxファイルを作成したいです。
流れとしては、vbからストアドをコールして、データを取得し、vbに返してvbがExcelテンプレートに書き出して Excel帳票を作成する流れです。
今回の質問内容としては、タイトルにもある通りvbがExcelの書き出しを行う際に、Excelの計算式(=SUM(I9,I10,I11,I12,I13,I14,I15)や=SUM(I8:N8,P8:U8)など) がセルに入力されたEXCEL帳票の作成の仕方がわからないというものです。
手法として考えたのが、@EXCELテンプレートに直接計算式を入力する方法 Avbで数値を出力する代わりにExcelの計算式を出力する方法 の二つです。
@の手法の問題点はExcel出力時に「オブジェクト参照がオブジェクトインスタンスに設定されていません。」というエラーメッセージが出ます。 テンプレートを「計算式記入前」→「計算式記入後」に変更して、vbは「何も手を加えず変更なし」の時と、 テンプレートを「計算式記入前」→「計算式記入後」・vbを「EXCELテンプレートに計算式を入れた箇所にデータを出力する部分をコメントアウトした」時の 2パターンともに発生していました。 テンプレートを「計算式記入前」・vbを「EXCELテンプレートに計算式を入れた箇所にデータを出力する部分をコメントアウトした」ものをそのまま使用した 時には、エラーメッセージが出ず、Excel帳票を出力させることができました。
Aの手法では、Excelの計算式で使用したいセルをPos(x,y)を使って座標で指定し、指定した座標を文字型で宣言した変数に代入して、 Excelに出力したい場所へデータを出力する部分をExcelの計算式を出力するように変更して実行しました。 結果としては、「型'BB.XlsxCell'のオブジェクトを型'System.String'にキャストできません。」 とエラーメッセージが出力されます。
以上の結果から質問としては、 @とAの手法でそれぞれのエラーを発生させないようにするにはどうすればよいのかと、 他の手法でvbからExcelの計算式が書かれた帳票を出力する方法が聞きたいです。
よろしくお願いいたします。
|
|