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

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

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

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

  • 一つのセルだけを自動計算または手動計算にしたい

    Excel2007利用です。 一つのセルだけを自動計算もしくは手動計算にするということはできないのでしょうか? 「数式」タブの「計算方法の設定」では「自動」「手動」の切り替えができますが、一つのセルだけを自動または手動にはできないのでしょうか? たとえばA1とA2に関数式が入っているとしますが、A1を手動にするとA2が計算されません。ひとつの設定に対して全体が作用されます。一つのセルだけを指定して自動または手動にすることはできないのでしょうか?

  • Excel2003で計算方法が勝手に自動から手動に変わります

    Excel2003を使用しています。 ふと気がつくと、ツール→オプション→計算方法が自動から手動に変わっているときがあります。 いろいろなExcelのファイルを開いていたりするのですが、それが原因でしょうか?

  • Excelで手動計算になっていないのに自動計算できない

    手動計算の設定になっていないのに自動計算出来なくて困ってます。 作業は↓のようなことをしています。 シートが左からsheet1、sheet2、sheet3、sheet4と有ります。 1.sheet1からsheet3までのA1セルの合計をsheet4のA1に出します。関数は=SUM(Sheet1:Sheet3!A1)になります。 2.その後、sheet2をsheet4の右側に移動します。  これでsheet4に入れてある関数自体は変わらないものの、中味の数値には変化があります。(sheet1とsheet3だけの合計になるから) 問題はこの後です。 3.移動したsheet2を元の位置に戻します。  通常でしたらこの時点で再計算され、sheet4にはsheet2の数値を含めたsheet1からsheet3までの合計が出るはずです。 がしかし、出ません。 ・手動計算の設定になっているのかと思い、確認しましたが、自動計算の設定になったままでした。 ・試しにF9キーを押してみましたが再計算されません。 ・実際はシートが大量にある為、計算速度が遅いのかと思い、5分程まってみましたが再計算されません。 ・上書き保存をして、PCも再起動して見ましたが、再計算されません。 結局どうしても再計算されないため、式が入っているセルをF2キーで再入力できる状態にしてからEnterキーを押して更新・再計算しています。(式を再入力している状態ですね) どうにか自動で再計算できないものでしょうか? それともこういう場合って再計算できないものなのでしょうか?

  • エクセルでの自動計算と手動計算

     4枚のシートからなるファイルがあります。 【シート1】インターフェース(変動要因の数値を入力する) 【シート2】最終的な計算結果を表示する 【シート3】DBその一 【シート4】DBその二 という構造です。 シート1で入力した数値によってシート3を参照し、シート1の次の選択肢が変更され、シート4がそれによって変動し、最終的にシート2に反映されるという構造です。 シート1  ↓ シート3  ↓ シート1  ↓ シート4  ↓ シート2 がフローチャートで全てのシートに関数があります。 関数及びデータが膨大なためファイル容量が3Mほどあり、 選択肢を変動させるのにとても時間がかかって困っています。  そこで、 シート4  ↓ シート2 の部分だけ、自動で計算されずに、 何らかの指令を下してから、 計算されるような制御が可能でしょうか? (マクロ等で) 可能であればどのような方法をとればよいでしょうか? よろしくお願いします。

  • EXCELの自動(再)計算について

    EXCELの自動計算について質問します。 EXCELの自動計算である特定のセルのみ自動計算をしないように設定することは出来るのでしょうか? 具体的には、ある共有しているファイルがありまして、そのトップ部分にファイルの更新時間を表示させております。 NOW()関数をそのセルに設定しているのですが、オプションでの自動計算が自動になっていると EXCELを開いた瞬間にこのファイル更新時間が再計算されてしまいますが、ここの更新時間表示の関数のみ オプションの自動計算の「手動(保存時に再計算)」にしたいのです。 この共有しているEXCELの他のセルには様々な関数が設けてあるのですが、それについては自動で再計算してもらわないと とても困るのです。(コンピュータを余り知らない方々も操作することもあるので、F9を押して再計算して下さいと混乱を招く 様な事はしたくないと言うこともあるので…) 何か良い方法がありますでしょうか?

  • Excel 計算方法が勝手に自動から手動に変わる

    WindowsXPでExcel2007を使用しています。 時々気が付くと計算方法が自動から手動に変わっていることがあります。 その都度オプションの設定を自動には戻しているのですが、変わってしまう原因がわかりません。 原因としては何が考えられるでしょうか。

  • EXCELで新しいbookでも計算方法が手動になる

    EXCELを使用していて新規作成のbookでも、手動計算になります。 自動計算に設定し、保存したファイルも一度閉じて開くと手動に戻っています。 作業グループの状態でExcel終了時にファイルを保存すると計算方法が手動になる(KB817716 ) 作業グループの状態ではないので、上記の問題とは別だと思います。 毎回設定をしなければいけなくかなり面倒です。 どうか、お助けください。

  • Excel 自動計算について

    Excel2003を使用しています。 VBAを使用して、ブック全体を自動計算せず、アクティブシート内のみ自動計算させる方法はありますでしょうか? よろしくお願いします。

  • EXCEL2002の自動計算が手動に戻ってしまう事がある。

    OS:Microsoft Windows 2000 5.00.2195 Service Pack 3 Microsoft Excel 2002 (10.2614.2625) メニューバーの「ツール」→「オプション」→ [計算方法] を 自動計算に設定しているのですが、ごく稀に手動に戻ってしまうことがあります。 どうしてなんでしょう…。何か対応策はないでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=568337 でも 回答者の方が同じような事例を書かれていますね。

  • EXCELの再計算設定の手動が自動に変わる

    EXCELで再計算設定を手動にして保存しているファイルがあるのですが、いつのまにか自動に変わっています。会社のパソコンで、LANでアクセスしたりいろんな人がいろんなファイルを使うのですが、このファイルについては計算方法を変更しないよう周知しています。人が変更していないとするとどんな原因が考えられますか? また、私以外が絶対自動に設定できない方法はありますか?(メニューバーを消す以外で)

専門家に質問してみよう