前提・実現したいこと
コード上でExcelに直接関数を入力して、保存した後、Excelファイルを開いた時には計算が出来ているという状況を作りたいです。
発生している問題・エラーメッセージ
入力後の値のままになっている。 しかし、一度セルをダブルクリックし文字入力できる状態から何も入力せずEnterを押すと計算される。
該当のソースコード
Excel
1=H57+'2'!H57+'3'!H57 2↓ダブルクリック後Enterなら計算ができる 31202
VBnet
1ClosedXMLを使用しています。 2Using book As New ClosedXML.Excel.XLWorkbook(pass) 3book.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ビット
そのコードは VB.NET ではありません。
はい、知っています。Excelの関数です。Excel上の問題だと思ったのでこの様な形にしました。
では VB.NET を使わずその式を入力した時でも再現するのですか?
もしそれで再現するのであれば、VB.NET は関係ないのでタグを外してください。
再現しないのであれば、そしてどんな式でも VB.NET を使えば再現するのであれば、その式は関係ありません。無意味な情報ということになります。
ということを書いたつもりですが、伝わらなかったようなのでわかりやすく書き直しました。
ありがとうございます。
VB.NET の問題なのか、Excel の問題なのか、切り分けて質問を書き直してくださいということです。今度こそ伝わりましたでしょうか?
「コード上」ってのはそのブック自体のVBAってことでしょうか?それともVB.NETを使った別アプリでブックを更新?
今度はかみ砕きすぎてバカにされたように感じましたか? 加減が難しいのですが、こちらはあなたを知らないので、適切なレベルが判断できません。言われたことをするのが嫌なのなら、自分から詳しい情報を出さなければいけないと思いますよ。VB.NET の問題かもしれないと少しでも思う場合には、そのコードが必要と思ってください。
ttyp03さん vb.netを使った別アプリでブックを更新しました。
そのコードは VB.NET ではありません。
VB.NETの環境がないのでVBSで同じようなことをやってみましたが再現しません。VB.NETのコードを提示したほうがよいかと思います。Zuishinさんからも言われてますしね。
なるほど、わかりました。しかしコードは至って単調なものとなっております。
単調かどうかは関係ありませんね。あなたより詳しい人に見てもらってください。
ほら、Excel ですらない。
ClosedXML を使っているという重大な情報を自分の判断で関係ないと判断して無視した結果、問題解決できなかったということです。
「closedxml excel 再計算」でぐぐるといいです
問題部分のコードを出したらすぐに解決したでしょ? 今度からは気を付けてください。

回答2件
あなたの回答
tips
プレビュー