質問: ### 前提・実現したいこと コード上でExcelに直接関数を入力して、保存した後、Excelファイルを開いた時には計算が出来ているという状況を作りたいです。 ### 発生している問題・エラーメッセージ ``` 入力後の値のままになっている。 しかし、一度セルをダブルクリックし文字入力できる状態から何も入力せずEnterを押すと計算される。 ``` ### 該当のソースコード ``` =H57+'2'!H57+'3'!H57 ↓ダブルクリック後Enterなら計算ができる 1202 ``` ``` ClosedXMLを使用しています。 Using book As New ClosedXML.Excel.XLWorkbook(pass) book.Worksheets(0).Rows(1).Cells(1).SetValue("=H57+'2'!H57+'3'!H57") ``` ### 試したこと Excelの計算方法の設定は「自動」nなっています。 一応コードの言語はvb.netですが、入力はできているし、セルに触れた後なら計算もしてくれるのでExcel上で解決できる問題なのかなと考えていますが、もしコード上の問題でしたら再度質問させていただきます。 ### 補足情報(FW/ツールのバージョンなど) Microsoft Excel for Office 365 MSO 32ビット
回答: ClosedXMLってのは使ったことないですが、おそらく使い方が違うのかと。 今の使い方だと数式ではなく値として認識されているのではないかと。 ``` book.Worksheets(0).Rows(1).Cells(1).SetValue("=H57+'2'!H57+'3'!H57") ↓ book.Worksheets(0).Rows(1).Cells(1).FormulaA1 = "H57+'2'!H57+'3'!H57" ``` ここを参考にしました。