2016年2月23日火曜日

Excel 2013のCalculateFullRebuildメソッドは,すべての数式を再入力することとは異なる

背景

https://msdn.microsoft.com/ja-jp/library/office/ff822609.aspx?f=255&MSPPError=-2147217396 によれば,

 CalculateFullRebuild メソッドは、すべての数式を再入力するのと似ています。

とのことであるが,あくまでも似ているだけであって,実際には非なるものである。 セルを選択して 'F2' キーを押したときと同じ効果は得られない。


検証環境

  • OS: Windows 10 Pro(64bit)
  • アプリケーション: Excel 2013(64bit)
  • CPU: Core i7 2.4GHz
  • RAM: 16GB
  • 仮想メモリ: OFF


検証方法

以下の手順で検証した。
  1. A1セルに数値として, 0 を入力する。
  2. A2セルに数式として, =A1+2.729 を入力する。 
  3. A2セルをA87セルまでドラッグコピーする。その結果,A87セルの値は234.694となっている。
  4. このA87セルをコピーして,B87セル,C87セルに値のみ貼り付ける。 いずれも,数式バーで確認すると,セルの値は234.694となっている。
  5. D87セルに数式として,=B87=C87 を入力する。B87セル,C87セルには同じ数値が入っているので,D87セルには TRUE が表示される。
  6. この状態で,Application.CalculateFullRebuildメソッドを実行し,D87セルの値を確認する。
  7. C87セルを選択して 'F2' キーを押し,D87セルの値を確認する。
  8. 手順6.の結果と 手順7. の結果を比較する。


結果

  • 手順6.の結果はTRUE,手順7.の結果はFALSEとなり,両者の計算結果は一致しない。
  • 手順6.でApplication.CalculateFullRebuildメソッドを実行する代わりに,Ctrl + Shift + Alt + F9 キーを押しても,やはり手順7.の結果とは一致しない。
  • なお,手順4.を実行した直後のB87セル,C87セルの値には,16桁目の「隠し桁」(? このような表現が正しいかどうか不明であるが・・・)のようなものが含まれており,そのセルを選択した状態で 'F2' キーを押すか,そのセルをダブルクリックして入力可能状態にすると,有効数字が15桁に丸められるような印象を受ける。この現象にはときどき遭遇する。

0 件のコメント:

コメントを投稿