• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:再計算の自動化・手動化について。)

再計算の自動化・手動化について

このQ&Aのポイント
  • Windows NTでExcel 2000を使っています。Excel VBAでユーザー定義関数を作り、いろんな場合分けで計算できるようになったのはいいのですが、再計算が遅くなって困っています。
  • 自動計算のためにApplication.Volatileを使っていますが、使っていないファイルまで再計算されてしまいます。数値を変更したときなど、再計算を制御できる方法はないでしょうか。
  • 他の方の質問で手動化と自動化を組み合わせる方法がありましたが、ファイルを閉じない限り再計算されないのではないかと心配です。もしその問題がある場合、複数のファイルを開いて作業していることが関係しているかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
  • bssa
  • ベストアンサー率55% (29/52)
回答No.1

EXcel2000は使ったこと無いのですが、97で私が使用している方法は、次のようなものです。 (1)文頭に Application.Calculation = xlCalculationManual(手動化)を置く。 (2)計算させたい個所に、Application.Calculate(再計算)を置く。 (3)文末に Application.Calculation = xlCalculationAutomatic(自動化)を置く。 これで手動化のまま再計算されるはずです。

Sheep17
質問者

補足

解答ありがとうございます。 ただちょっとわからないのは(2)の「計算させたい個所」とは具体的にどのあたりなのでしょうか? 計算式はIF構文とSelect Case…を組み合わせて作っているのですが End Selectのたびに(2)を使えばよいのでしょうか? お手数ですがよろしくお願いします。

その他の回答 (1)

  • bssa
  • ベストアンサー率55% (29/52)
回答No.2

どの時点で再計算が必要になるかによります。 IF構文とSelect Caseをお使いとのことですが、この構文の中でセルに数値を入力する作業をしている場合、それにより変更された計算結果を構文の中で必要としているのでなければEnd Selectの後ろでいいと思います。 計算結果を必要とするまで、むだな再計算を用いなくて済むようプログラミングすることが大切であろうと思います。

Sheep17
質問者

お礼

ありがとうございました。とても参考になりました。 プログラミングについては必要個所だけかじった初心者なので 構文に必要・不必要の判断がまだまだ難しいのですが これから色々勉強して使えるプラグラムを組めるようになりたいです。

関連するQ&A

専門家に質問してみよう