C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■103058 / 1階層)  vbからExcelの計算式が書かれた帳票を出力したい。
□投稿者/ 魔界の仮面弁士 (3759回)-(2024/04/11(Thu) 17:01:57)
No103056 (ヒノザル さん) に返信
> 使用しているDBはSQLserver Excelはxltxファイルからxlsxファイルを作成したいです。

xlsx ではなく、xml スプレッドシート形式を使えば、Microsoft Excel を呼び出すことなく、
XSLT 等を使ってワークブックを作れますね。まぁ、今更 XML 操作というのも使いにくそうですが。
https://atmarkit.itmedia.co.jp/fxml/tanpatsu/15mssql/mssql04.html
https://learn.microsoft.com/en-us/sql/relational-databases/sqlxml-annotated-xsd-schemas-xpath-queries/net-framework-classes/applying-an-xsl-transformation-sqlxml-managed-classes?view=sql-server-ver16


> 今回の質問内容としては、タイトルにもある通りvbがExcelの書き出しを行う際に、Excelの計算式(=SUM(I9,I10,I11,I12,I13,I14,I15)や=SUM(I8:N8,P8:U8)など)
> がセルに入力されたEXCEL帳票の作成の仕方がわからないというものです。

Excel を COM 参照してオートメーション操作しているのであれば、
Range オブジェクトの
 Formula プロパティ
 FormulaR1C1 プロパティ
で、セルの【数式】を読み書きできます。
前者は、A1 方式の 『=SUM(I8:N8,P8:U8)』
後者は、R1C1 方式の『=SUM(R[7]C[8]:R[7]C[13],R[7]C[15]:R[7]C[20])』です。

また、配列数式の場合は FormulaArray プロパティを使います。


計算によって算出されたセルの【値】は Value プロパティ や Value2 プロパティで読み書きします。

Value プロパティは 浮動小数点型(double) / 文字列型(string) / 通貨型 / 日付型を扱いますが
Value2 プロパティは、通貨型と日付型を扱わず、それらを double 型で返すという違いがあります。


そして 計算値の更新が「即時反映」なのか「手動反映」なのかは、
Application オブジェクトの Calculation プロパティで切り替わります。
手動計算時は、Calculate メソッドまたは CalculateFull メソッドを呼び出すことで再計算します。


計算式が複雑な場合や、計算するセルが多くて時間がかかる場合は、
 一時的に手動計算モードに変更
  ⇒ 各種セルを編集
   ⇒ 編集が終わったら一括再計算
    ⇒ 自動計算モードに戻しておく
とすることで、セル編集時のパフォーマンスが向上します。




> @の手法の問題点はExcel出力時に「オブジェクト参照がオブジェクトインスタンスに設定されていません。」というエラーメッセージが出ます。
それは実装が間違っているのだと思いますが、
実際のコードを見せてもらわないと、修正すべき場所を指摘できません。


> Aの手法では、Excelの計算式で使用したいセルをPos(x,y)を使って座標で指定し、
おぉぅ…?

> 結果としては、「型'BB.XlsxCell'のオブジェクトを型'System.String'にキャストできません。」
> とエラーメッセージが出力されます。
'System.String' 型というのは分かりますが、
'BB.XlsxCell' 型というのは何ですか? 自作ライブラリ?


座標指定という話もあったので、(Microsoft の) Excel への COM 参照を使っているのではないのかな…。
XlsxCell という名で検索してみると、MESCIUS 社の製品がヒットしたものの、なんか違うような。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←vbからExcelの計算式が書かれた帳票を出力したい。 /ヒノザル →Re[2]: vbからExcelの計算式が書かれた帳票を出力したい。 /魔界の仮面弁士
 
上記関連ツリー

vbからExcelの計算式が書かれた帳票を出力したい。 / ヒノザル (24/04/11(Thu) 14:45) #103056
vbからExcelの計算式が書かれた帳票を出力したい。 / 魔界の仮面弁士 (24/04/11(Thu) 17:01) #103058 ←Now
  └ Re[2]: vbからExcelの計算式が書かれた帳票を出力したい。 / 魔界の仮面弁士 (24/04/11(Thu) 17:50) #103059
    └ Re[3]: vbからExcelの計算式が書かれた帳票を出力したい。 / ヒノザル (24/04/17(Wed) 10:08) #103066
      └ Re[4]: vbからExcelの計算式が書かれた帳票を出力したい。 / 魔界の仮面弁士 (24/04/17(Wed) 12:34) #103067 解決済み
        └ Re[5]: vbからExcelの計算式が書かれた帳票を出力したい。 / ヒノザル (24/04/17(Wed) 16:04) #103068
          └ Re[6]: vbからExcelの計算式が書かれた帳票を出力したい。 / 魔界の仮面弁士 (24/04/17(Wed) 18:33) #103069
            └ Re[7]: vbからExcelの計算式が書かれた帳票を出力したい。 / ヒノザル (24/04/19(Fri) 09:34) #103077
              └ Re[8]: vbからExcelの計算式が書かれた帳票を出力したい。 / 魔界の仮面弁士 (24/04/19(Fri) 10:19) #103080
                └ Re[9]: vbからExcelの計算式が書かれた帳票を出力したい。 / ヒノザル (24/04/22(Mon) 14:32) #103085 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信