- ベストアンサー
VBA数式の計算が止まらない
- VBAのマクロで数式の計算が止まらずに実行される問題が発生しています。実行時にApplication.Calculation = xlCalculationManualを設定しているにもかかわらず、すべての計算が行われてしまいます。
- マクロの中でE列に1から10までの数値を記入し、G列にそれぞれの数値を2倍した値を数式で計算して記入しています。しかし、Application.Calculation = xlCalculationManualを設定しているにもかかわらず、計算が止まらずに全てのセルが計算されてしまいます。
- 疑問点は、Application.Calculation = xlCalculationManualを設定しているのになぜ計算が止まらないのかです。この問題の原因を特定するためには、他の要素が影響している可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「自動計算する/しない」の設定は、「既に数式が入力されているセルで」「他のセルの値が変更されたときに」自動的に再計算をするかどうかです。 「セルに数式を入力するとき」あるいは「既に数式が入力されているセルの数式を変更するとき」には、「自動計算する/しない」の設定に関係なくそのセル自身の計算は行われます。 例えば、処理の順番を変えてG列の計算式を先に入れた後にE列に値を入れるようにした Sub Macro1() Application.Calculation = xlCalculationManual For i = 1 To 10 Cells(i, "G").Formula = "=E" & i & "*2" Cells(i, "E") = i Next i Application.Calculation = xlCalculationAutomatic End Sub と、ここから Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic を除いた Sub Macro2() For i = 1 To 10 Cells(i, "G").Formula = "=E" & i & "*2" Cells(i, "E") = i Next i End Sub この二つの動作を比べてみればわかるのではないかと思います。
その他の回答 (1)
- Chiquilin
- ベストアンサー率30% (94/306)
よく分かりませんが「何」が返って欲しいのですか? 何がしたいのかが この説明ではよく分かりません。何をやろう としてこの処理を行っているのですか? 自動計算を切った状態でも 数式を入れて確定すれば計算結果は 返ります。別にマクロに限った話じゃないですよね? それを抜きにしても その後で自動計算を自動にしているし……
お礼
ありがとうございます。 私もあなたが何のために回答してるのか、さっぱり分かりません。
お礼
ありがとうございます。 理屈が分かりました。完璧です。