再計算(Calculation, EnableCalculation, Calculate)
2016/01/12
ワークブックやシートの再計算
通常、Excel では、自動的に再計算が行われる設定になっており、セルに値を入力した時に関連する数式や関数がある場合、再計算が実行されます。ただし、大量の計算式がある場合は、その処理に時間がかかる場合があります。マクロを実行する際、再計算の設定を「手動」にすることで、マクロの実行速度を向上させることが可能です。
Calculation プロパティ
ブック全体を自動的に再計算するかどうかを設定することができます。計算方法のモードを表す XlCalculation 列挙型の値を使用し、取得および設定が可能です。
<取得>
object.Calculation
<設定>
object.Calculation = const
引数・戻り値
- object ・・・ 対象となる Application オブジェクトを指定します。
- const ・・・ 計算モードを表す XlCalculation 列挙型 の定数またはその値を指定します。
定数 値 内容 xlCalculationAutomatic -4105 自動 xlCalculationManual -4135 手動 xlCalculationSemiautomatic 2 データテーブル以外自動
EnableCalculation プロパティ
指定したワークシートを自動的に再計算するかどうかを設定します。ブール型(Boolean)の値を使用し、取得および設定が可能です。
<取得>
object.EnableCalculation
<設定>
object.EnableCalculation = boolean
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- boolean ・・・ True を指定すると、必要に応じて自動的にシートの再計算を実行します。False を指定した場合、シートの再計算を実行しません。
EnableCalculation プロパティ に、False を設定したままブックを保存、終了しても、次回ブックを開いた時、EnableCalculation プロパティは、True に設定されるので注意が必要です。
※ Excel 2013 の場合、最初の1回は、再計算されませんでした。(他のバージョンに関しては試していないのでどのような動作を行うかわかりません。)
Calculate メソッド
Excel の自動再計算の設定が、「手動」の場合に、再計算を行うには、Calculate メソッド を実行します。指定するオブジェクトによって、再計算を行う範囲を変更することができます。
object.Calculate
引数・戻り値
- object ・・・ 対象となる Application オブジェクト、Worksheet オブジェクト、Range オブジェクトを指定します。
Application オブジェクトを指定、または、省略した場合、ブック全体を再計算します。
Worksheet オブジェクトを指定した場合、指定したワークシートだけを再計算します。
Range オブジェクトを指定した場合、指定したセル範囲だけを再計算します。
再計算の設定 使用例
サンプルVBAソース
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Sub Sample01_Calculation() 'ブックの再計算を「手動」に設定 Application.Calculation = xlCalculationManual 'セルに数値を入力 Dim i As Long For i = 2 To 10 Cells(i, 2) = i * 10 Cells(i, 5) = i * 10 Next i '「B12」セルに、SUM 関数を入力 Range("A12") = "合計" Range("B12") = "=SUM(B2:B10)" '「E12」セルに、SUM 関数を入力 Range("D12") = "合計" Range("E12") = "=SUM(B2:B10)" '「B10」「E10」の値を変更 Range("B10") = 1000 Range("E10") = 1000 '「B12」セルだけ再計算を実行 Range("B12").Calculate End Sub |
実行結果
関連記事
-
-
印刷設定(フッターに画像を指定)LeftFooterPicture,CenterFooterPicture,RightFooterPicture
フッターに画像を表示するには LeftFooterPicture プロパティ、C …
-
-
印刷時の改ページ設定(Add,ResetAllPageBreaks)
改ページの追加と解除 印刷時に改ページを指定するには、HPageBreaks コ …
-
-
印刷設定(偶数ページのヘッダー・フッターを設定)OddAndEvenPagesHeaderFooter, EvenPage
偶数ページに別のヘッダーおよびフッターを設定 偶数ページのヘッダーおよびフッター …
-
-
0 を表示するかどうかを設定(DisplayZeros プロパティ)
DisplayZeros プロパティ DisplayZeros プロパティに、T …
-
-
シートを保護・保護したシートを解除する(Protect メソッド・Unprotect メソッド)
Protect メソッド・Unprotect メソッド Protect メソッド …
-
-
新しいウィンドウを開く(NewWindow メソッド)
NewWindow メソッド NewWindow メソッドで、任意のブックのコピ …
-
-
ワークシートをファイルに保存する(SaveAs メソッド)
SaveAs メソッド ワークシートを名前を付けてファイルに保存します。Work …
-
-
ユーザー設定のビュー(CustomViews プロパティ)
ユーザー設定のビュー CustomViews コレクションは、ユーザー設定ビュー …
-
-
ブックのパスを取得(FullName プロパティ,Path プロパティ)
FullName プロパティ・Path プロパティ ブックのパス(保存場所)を調 …
-
-
シート見出しの表示・非表示(DisplayWorkbookTabs プロパティ)
シート見出しの表示・非表示(DisplayWorkbookTabs プロパティ) …
