2012.03.07

第142回 (A) Excelの「手動」計算モードが無視される場合があることをご存知ですか?【IT・情報システム支援】

商品開発本部 連結会計システム開発部 マネージャ(Formula-X担当) 山城 章仁

Excelで複雑な表や大きな表を作ると、セルへなにかを入力するたびに待たされるようになってきます。これは、あるセルが他のセルの値を元に計算するような式を設定している場合 (例 A3の式 = A1 + A2) に、あるセルへのデータ入力が他のセルの計算をやり直す引き金となり、さらにそのことがまた別のセルの計算のやり直しを引き起こし、さらにそのことが...という再計算の連鎖が発生するためです。

まだデータ入力の途中であり最終的な計算結果を今見たいわけではないという時に、このような待ち状態に見舞われると、とてもイライラさせられるものです。
このような事態への対処法として、Excelには「手動」計算モードが用意されています。
「計算方法」の設定で「手動」を選択すると、「再計算実行」を自分で選ばない限り、再計算はされません。その結果として、データ入力のたびに待たされるということもなくなります。
たとえば、セル A1 に 「1」、セルB1に「=A1*2」 と入力していたら、B1には計算結果として「2」が表示されますが、「手動」モードでは、この後に、A1の数字を「4」に変更しても、B1には元の「2」が表示されたままとなります。そして「再計算実行」をクリックすると、はじめてB1に「8」が表示されます。「再計算実行」をするまでは計算結果が正しくない代わりに、データ入力中はデータの入力に専念できる素早い反応をみせてくれます。
ちなみに、この「手動」の逆の設定が「自動」で、常に正しい計算結果を表示してくれる計算モードです。この計算モードは、ブックごとに「手動」にするか「自動」にするか設定することができますが、ブックを新規作成した場合には、なにも設定しないと「自動」になっています。

と、ここまでは比較的知られている話かもしれません。しかし、この話には1つだけ落とし穴があるのです。
実は、2つ以上のブックを同時に開いていると、2つ目以降のブックの計算モードは無視されてしまいます。無視されると言いますか正確には、1つ目のブックの計算モードが2つ目以降のブックにも適用されてしまいます。たとえば、自動計算にしたブック「auto.xls」を開き、次に、手動計算にしたブック「manual.xls」を開いたとします。この「manual.xls」は本来手動計算に設定されていますが、この時だけは自動計算が適用されます。
反対に、手動計算にしたブック「manual.xls」をはじめに開き、次に自動計算にしたブック「auto.xls」を開くと、本来は自動計算に設定されている筈の「auto.xls」に、この時だけは手動計算が適用されてしまいます。

私はこの動作を見た時(乃至はこの動作を見る度)に、始めの内は、てっきり不具合に違いないと思っていましたが、よくよく考えてみると、実は不具合などではなく、2つ以上のブックを開いた場合には、ブックをまたがる計算式を設定している可能性が高いので、開かれている複数のブック全体で考えないとつじつまが合わなくなる思想が根底にあるということに気づきました。
さてここまでは、「私はいかにもExcelに精通している」という印象を与える書き方をしてしまいましたが、正直なところ、数年前までこの動きを全く知りませんでした。実のところ、あるお客様から「Formula-Xで作ったブックの手動計算が無視されることがありますが、Formula-Xの問題ではありませんか」というご質問を受けて調査したことがきっかけとなり、これを知るに至りました。

上記の例に拘わらず、仕事柄、お客様からExcelに関連する質問を色々とお受けする機会がありますが、中にはそうしたご指摘が契機となり、私のチームで発生条件を調べた結果、製造元に報告して不具合に認定してもらった事例などもあります。(例えば、こちらなどです)お客様への対応という経験に加え、私のFormula-X/ExcelAdapterチームと、私の担当ではないEIGSチームとの間ではExcelに関する情報共有を頻繁に行っていますが、知れば知るほど、良い意味でも悪い意味でもExcelは奥の深いソフトだと感じますと共に、これまで蓄積してきたノウハウを、今後とも、お客様の問題解決のために幅広くご提供できればと思います。

MAIL MAGAZINE

メールマガジン

NEWS

ニュース

SEMINAR / EVENT

セミナー / イベント

セミナー/イベント一覧を見る

お問い合わせ