開発マシンとテスト マシンで Excel の動作が異なるという奇妙な問題があります。
私のアドインでは、実行時間の長いプロセスのためにいくつかの場所で ScreenUpdating をオフにしました。私のマシンでは、これは正常に動作します。ScreenUpdating = true
テスト マシンでは、セルに書き込むとすぐに Excel が設定されます。
次のコードは、私の問題を示しています。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = Globals.ThisAddIn.Application;
MessageBox.Show(excel.ScreenUpdating.ToString());
excel.ScreenUpdating = false;
MessageBox.Show(excel.ScreenUpdating.ToString());
Workbook workbook = Globals.ThisAddIn.Application.ActiveWorkbook;
Worksheet w = (Worksheet)workbook.Worksheets[1];
((Range)w.Cells[1, 1]).Value = "Test";
MessageBox.Show(excel.ScreenUpdating.ToString());
}
私のマシンで Excel を開くと、3 つのメッセージ ボックスが表示されます。
「真」、「偽」、「偽」。
テストマシンで彼らは言う
「真」、「偽」、「真」。
また、リモート デバッガーを使用してScreenUpdating
、セル値が設定された直後にプロパティが変化するのを確認しました。さらに、リセットされるのはこれだけではありませんScreenUpdating
。ワークシートまたはワークブックの追加または削除もこれを行います。
各システムの Excel バージョンは同じです (14.0.6112.5000 (32 ビット))。
何が原因でしょうか? Excel が設定を尊重するように修正するにはどうすればよいですか?