Vba

アプリケーションオブジェクト

Application Object

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に配置します。



ExcelVBAのWorksheetFunction

注:Application.WorksheetFunction.Averageの代わりに、WorksheetFunction.Averageを使用してください。数式バーを見ると、数式自体がセルA3に挿入されていないことがわかります。数式自体をセルA3に挿入するには、次のコード行を使用します。

Range( 'A3')。Value = '= AVERAGE(A1:A2)'

ScreenUpdating

コードの実行中に(ちらつきを避けるために)画面の更新を無効にすると便利な場合があります。その結果、コードの実行速度が向上します。

1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。

なしNS 整数

にとってi = 110,000
Range( 'A1')。Value = i

ワークシートのコマンドボタンをクリックすると、Excel VBAは各値をほんの一瞬で表示しますが、これには時間がかかる場合があります。

ScreenUpdating

最後の空でないセルの値を取得します

2.プロセスを高速化するには、次のようにコードを更新します。

なしNS 整数

Application.ScreenUpdating =NS

にとってi = 110,000
Range( 'A1')。Value = i


Application.ScreenUpdating =NS

その結果、コードの実行速度が大幅に向上し、最終結果(10000)のみが表示されます。

DisplayAlerts

コードの実行中にアラートを表示しないようにExcelVBAに指示できます。

1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。

ActiveWorkbook.Close

ワークシートのコマンドボタンをクリックすると、Excel VBAはExcelファイルを閉じ、行った変更を保存するように要求します。

DisplayAlerts

データ系列をグラフに追加するための正しい手順を示しているのは次のうちどれですか?

2.コードの実行中にこのアラートを表示しないようにExcelVBAに指示するには、次のようにコードを更新します。

Application.DisplayAlerts =NS

ActiveWorkbook.Close

Application.DisplayAlerts =NS

その結果、Excel VBAは、行った変更を保存するように要求せずに、Excelファイルを閉じます。変更はすべて失われます。

計算

デフォルトでは、計算は自動に設定されています。その結果、Excelは、数式に影響する値が変更されるたびにブックを自動的に再計算します。ワークブックに多くの複雑な数式が含まれている場合は、計算を手動に設定することでマクロを高速化できます。

1.たとえば、 コマンドボタン ワークシートに次のコード行を追加します。

Application.Calculation = xlCalculationManual

ワークシートのコマンドボタンをクリックすると、ExcelVBAは計算を手動に設定します。

2. [ファイル]、[オプション]、[数式]をクリックして、これを確認できます。

計算オプション

3.セルA1の値を変更しても、セルB1の値は再計算されません。

手動計算

F9キーを押すと、ブックを手動で再計算できます。

4.ほとんどの場合、コードの最後で計算を再び自動に設定します。これを実現するには、次のコード行を追加するだけです。

Application.Calculation = xlCalculationAutomatic

1/4完了!アプリケーションオブジェクトの詳細>
次の章に進む: ActiveXコントロール



^