• ベストアンサー

EXCELの再計算について

EXCELにて、多くの計算式が入ったブックを使用しています。 計算方法は自動のままなので、セルに何か入力するとそのたびに再計算となり数秒入力ができなくなります。 しかし、原因は不明なのですが、再計算の最中にキー入力やマウスクリックがあると再計算が一時停止してすぐに入力ができ、入力が終わって数秒後に再び再計算が行われる状態になっているときがあります。 この状態がすごく調子がいいのでいつもこの状態にしておきたいのですが、この状態になる条件がわかりません。 申し訳ありませんが、どなたかこの状態にする条件をご存知の方はご教授願います。 OS:Windows XP SP2 EXCEL Ver:2003

  • ra272
  • お礼率80% (4/5)

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

  • ベストアンサー
  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.5

No.3&4の者です。 > 特定のシートに対して計算方法の自動/手動設定はできるのでしょうか? たぶん、例えばこんなマクロを組み込むと、ご希望の設定になるかと思います。 手動にしたいシート名を「Sheet1」とします。 (1)まず、Microsoft Visual Basicの「ThisWorkbook」モジュールに、次のマクロを格納してみてください。 Private Sub Workbook_Open() If ActiveSheet.Name = "Sheet1" Then _ Application.Calculation = xlCalculationManual End Sub Private Sub Workbook_Activate() If ActiveSheet.Name = "Sheet1" Then _ Application.Calculation = xlCalculationManual End Sub Private Sub Workbook_Deactivate() Application.Calculation = xlCalculationAutomatic End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.Calculation = xlCalculationAutomatic End Sub (2)次に、手動にしたいシート「Sheet1」のシートモジュールに、次のマクロを格納してみてください。 Private Sub Worksheet_Activate() Application.Calculation = xlCalculationManual End Sub Private Sub Worksheet_Deactivate() Application.Calculation = xlCalculationAutomatic End Sub (3)これでブックを保存すると、ご希望の設定になるかと思います。 シート名が異なるときは、(1)で2箇所ある「"Sheet1"」の""内を、例えば「"固定資産"」といった具合に、該当のシート名に差し替えてください。 また、手動にしたいシートが複数あるときは、それぞれのシートモジュールに(2)のマクロを格納するとともに、(1)のマクロのうち2箇所ある If ActiveSheet.Name = "Sheet1" Then _ との部分を、 If ActiveSheet.Name = "Sheet1" Or ActiveSheet.Name = "Sheet2" Then _ といった具合に「Or」で連結してみてください。 これでいけると思いますヨ。

ra272
質問者

お礼

早速試してみたところ、シートごとに自動/手動が設定できました! Or で連結し、複数のシートを手動とすることもできました。 最初の質問とはズレてしまって申し訳ありませんでしたが、ホントに助かりました。 ありがとうございました!

その他の回答 (4)

  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.4

No.3の者です。計算方法の設定はご存知だったのですね。それは失礼いたしました。 ご質問事項からは外れてしまうのですが、複数ブックや複数シートを並行して使用する際に、特定のブックないしシートに対してのみ計算方法を手動にしたいときは、マクロを使うとラクチンだと思いますヨ。 例として、特定のブックに対してのみ手動に設定するマクロは、こんな具合かと思います。 Private Sub Workbook_Open() Application.Calculation = xlCalculationManual End Sub Private Sub Workbook_Activate() Application.Calculation = xlCalculationManual End Sub Private Sub Workbook_Deactivate() Application.Calculation = xlCalculationAutomatic End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.Calculation = xlCalculationAutomatic End Sub これをMicrosoft Visual Basicの「ThisWorkbook」モジュールに格納してブックを保存すると、そのブックを使用しているときのみ計算方法が手動になりますよ。

ra272
質問者

お礼

ok2007さん、丁寧にありがとうございます。 早速モジュールに格納して使用してみようかと思います。 こちらも少しずれて申し訳ありませんが、特定のシートに対して計算方法の自動/手動設定はできるのでしょうか? 元となるシートのみ自動計算とし、その元となるシートを使って表を作成している他のシートは手動とできないものかと過去いろいろ調べたのですが、どうもシート単位では設定できないようなので諦めていました。 申し訳ありませんが、もしできるようでしたら教えていただけると助かります。

  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.3

DSUM関数は、データを書き換える度に再計算が実行されます。これを回避するには、計算方法を自動から手動に変更するといいですよ。 自動・手動の選択は、「ツール」-「オプション」の「計算方法」タブでおこなえます。手動にした状態でエクセルに計算を実行させるには、F9キーを押せば良かったかと思います。

ra272
質問者

お礼

そうですね。多くのデータを入力する際には「手動」としています。 しかし、同時に開いている他のブックも手動になってしまうのでイマイチ使い勝手が悪いのです。すぐに自動に戻せばいいのですが忘れっぽいものですから…。 どうもありがとうございました。

  • gutoku2
  • ベストアンサー率66% (894/1349)
回答No.2

>再計算の最中にキー入力やマウスクリックがあると再計算が一時停止してすぐに入力ができ、 私は、本来ならばAccess等のデータベースソフトで集計すべき2万件~4万件の データをExcelで行っています。(65536件以上はAccessを使用しますが・・・) 割と複雑な関数を使っていますので再計算に数十秒~1分かかります。 (まあ、PCも古いですが) 再計算中に任意のセルをダブルクリックすると再計算は止まります。 (私の場合は規則性があり、これで必ず再計算が止まります) その間に入力をすれば、確かに入力できます。 但し、再計算が再開されるのは必ず何秒後と規則性が発見できませんから必ず   ツール - オプション - 計算方法 にて    ”再計算実行” を行います。   (関数の計算結果が途中で止まっていると困りますから・・・・) これが、Excel2003の標準機能か否かは分かりませんが、ご参考まで。

ra272
質問者

お礼

任意のセルをダブルクリック…。思いもよりませんでした。 知らず知らずの間に私もやっていたのでしょうか…? (他のアプリケーションが関わっているのかとまで思いました。) 私の場合は再計算は数秒で終わるので、セルに入力後しばらくすれば次のセルに入力できますが、連続で入力するときはストレスがたまりますね。 明日早速試してみたいと思います。 どうもありがとうございました。

  • diio-bri3
  • ベストアンサー率34% (130/382)
回答No.1

数式もマクロの状態もわからなければ、 誰も回答できないと思います。

ra272
質問者

補足

説明が不足していて申し訳ありません。 元となるシートに数値が入力してあり、その数値を使って他のシートでいろいろな表を作成するようになっています。使用している関数はほとんどDSUMです。 DSUMを使用して表を作成しているシートは10シートほどあります。

関連するQ&A

  • Excelの初動で計算するとしばらく固まります。

    エクセルを開いて最初に、計算式に対応したセルに数字等データを入力。 ※例)C1に「A1*B1」等簡単な計算式があり、A1に最初に入力する 入力後動作がストップし、ひどいときは全面白くなる。マウスポインタは読み込み中に。早くて5.6秒、長いときには30秒程動作が止まった後復旧、その後はどのセルに何を入力しようと問題なく動作します。 何か原因や解決方法が分かるとありがたいです。日々使用するデータなので細かいですが気になります… ※office2014で作成したデータを2017で使用していたので、互換性の問題かと思いデータを変換してみましたが改善しませんでした。

  • エクセルの秒計算について教えてください

    エクセル2003で以下のような計算をさせたいのですが、関数をどう作れば良いのか分かりません。 A1セルに00:00:01(分:秒:100分の1秒台の表示)と入力 その後A2セルから順に00:00:02~00:00:09と100分の1秒ずつ足していく用に計算させる。 そうするとA10セルでは00:00:10となるが、それを00:01:00と繰り上げたい。 要約すると、100分台は0~9までカウントし10分の1秒は1秒とカウントさせてしまう。1秒台はそのまま通常通りのカウントにしたい。 これを例えばA1000ぐらいまで計算させるとしたらどんな関数を入力する必要がありますか? 説明が拙くて申し訳ありませんが、よろしくお願いします。

  • エクセル2003の表示スピード

    エクセル2003でセルへ数値を入力するとキー押下から表示までに時間がかかります。最大4~5秒かかることもあります。ある特定のエクセルブックのみこの現象が起きています。原因と対策がわかる方いらっしゃいますか。

  • エクセルの計算がされなくなった

    エクセルの簡単な計算を入れていて今まで、自動で やってくれていたのですが、しばらく使っていなくて 最近、エクセルを開いたら、エクセルの自動計算を してくれなくなりました。 なぜでしょうか? セルには、計算式は残っており、ダブルクリックしたら、 計算されます。しかし、以前は、数値を入力するだけで 計算してくれていました。 以前の自動計算してくれる状態にしたいです。

  • エクセル 計算式 

    エクセル 計算式  教えて下さい。エクセルで、計算式を入れる場合ですが、文字列を表す場合"*"で代用しますよね? 数値を表す場合はどうすれば良いのでしょう? 例:COUNT IFなどで検索条件のところに「数値が入力されているセルの数」としたいのですが。 よろしくお願いします。

  • エクセルでDeleteキーを押しても計算式が消えないようにしたい!

    エクセルで作成した表の列のセル内に、計算式を入力しています。 セル内の値をクリアする為にDeleteキーを押すと、計算式まで消されてしまいます。 ロックする方法はありますか? 教えて下さい。 お願いします。

  • エクセルで日数を計算したい

    エクセルで、日数を計算したいと思っています 例えば1つのセルに7/1と入力し、もう一つのセルに7/3と入力すれば、計算式を入力したセルに3日と出てくるみたいな・・・。 どのような計算式を入力すればできますでしょうか?

  • エクセルでの再計算がされないんです

    売上集計表としてエクセルを使用しています。ひとつのセルに売上数字を入れると前期との比率や累計などが計算されるようになっています。最近になって、この表に元になる数字を入れても再計算がされないことに気づきました。計算式の入ったセルをアクティブにしてその中に入力可能な状態にすると再計算されます。 今までのように数字を入れれば全て計算される状態にしたいのですがやり方がわかりません。詳しい方、教えてください。よろしくお願いします。

  • エクセルの計算式

    はじめまして。 エクセルの計算式で下記1・2の条件でセルE1からE5に入る計算式はどのようになるのか教えていただけませんか? 1 過去1年間の月曜から金曜までで、1日の株価の高値と安値の値幅が、100円以上は曜日ごとに何回あったかカウントしたい。 2 セルA1から過去1年間の月曜から金曜まで入力し、セルB1から値幅数を入力し、セルD1からD5に月曜から金曜・セルE1からE5に上記1の条件を満たした回数を表示したい。 よろしくお願い致します。

  • エクセルの再計算について

    エクセル2007を使用しています。 再計算をするときに、f9 と shift キーを押して手動で実行しているのですが、 たまに計算されていないセルがあります。 パソコンで軽くしらべてみたのですが、それらしい答えがヒットせず、お手上げ状態です。 個人的には、容量が多いと全て計算できないのかと思っています。 ・なぜ、このようなことが起こるのか。 ・全て計算させるにはどのような処理を行えばよいのか。 どちらでも分かる方、教えてください。 お願いします!

専門家に質問してみよう