WorksheetFunction | ScreenUpdating | DisplayAlerts | 計算
すべてのオブジェクトの母はExcel自体です。私たちはそれを アプリケーションオブジェクト 。アプリケーションオブジェクトは、Excel関連の多くのオプションへのアクセスを提供します。
WorksheetFunction
WorksheetFunctionプロパティはで使用できます Excel VBA Excel関数にアクセスします。
1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。
Range( 'A3')。Value = Application.WorksheetFunction.Average(Range( 'A1:A2'))ワークシートのコマンドボタンをクリックすると、Excel VBAはセルA1とセルA2の値の平均を計算し、その結果をセルA3に配置します。
注:Application.WorksheetFunction.Averageの代わりに、WorksheetFunction.Averageを使用してください。数式バーを見ると、数式自体がセルA3に挿入されていないことがわかります。数式自体をセルA3に挿入するには、次のコード行を使用します。
Range( 'A3')。Value = '= AVERAGE(A1:A2)'ScreenUpdating
コードの実行中に(ちらつきを避けるために)画面の更新を無効にすると便利な場合があります。その結果、コードの実行速度が向上します。
1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。
なし私NS 整数にとってi = 1に10,000
Range( 'A1')。Value = i
次私
ワークシートのコマンドボタンをクリックすると、Excel VBAは各値をほんの一瞬で表示しますが、これには時間がかかる場合があります。
最後の空でないセルの値を取得します
2.プロセスを高速化するには、次のようにコードを更新します。
なし私NS 整数Application.ScreenUpdating =NS
にとってi = 1に10,000
Range( 'A1')。Value = i
次私
Application.ScreenUpdating =NS
その結果、コードの実行速度が大幅に向上し、最終結果(10000)のみが表示されます。
DisplayAlerts
コードの実行中にアラートを表示しないようにExcelVBAに指示できます。
1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。
ActiveWorkbook.Closeワークシートのコマンドボタンをクリックすると、Excel VBAはExcelファイルを閉じ、行った変更を保存するように要求します。
データ系列をグラフに追加するための正しい手順を示しているのは次のうちどれですか?
2.コードの実行中にこのアラートを表示しないようにExcelVBAに指示するには、次のようにコードを更新します。
Application.DisplayAlerts =NSActiveWorkbook.Close
Application.DisplayAlerts =NS
その結果、Excel VBAは、行った変更を保存するように要求せずに、Excelファイルを閉じます。変更はすべて失われます。
計算
デフォルトでは、計算は自動に設定されています。その結果、Excelは、数式に影響する値が変更されるたびにブックを自動的に再計算します。ワークブックに多くの複雑な数式が含まれている場合は、計算を手動に設定することでマクロを高速化できます。
1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。
Application.Calculation = xlCalculationManualワークシートのコマンドボタンをクリックすると、ExcelVBAは計算を手動に設定します。
2. [ファイル]、[オプション]、[数式]をクリックして、これを確認できます。
3.セルA1の値を変更しても、セルB1の値は再計算されません。
F9キーを押すと、ブックを手動で再計算できます。
4.ほとんどの場合、コードの最後で計算を再び自動に設定します。これを実現するには、次のコード行を追加するだけです。
Application.Calculation = xlCalculationAutomatic次の章に進む: ActiveXコントロール