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

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

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

Excel VBAのWorksheetFunction

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

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

場合によっては、コードの実行中に画面の更新を無効にして(ちらつきを避けるために)役立つ場合があります。その結果、コードはより速く実行されます。

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

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

ワークシート上のコマンドボタンをクリックすると、Excel VBAは各値を1秒間で表示しますが、時間がかかることがあります。

ScreenUpdating

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

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

その結果、コードははるかに高速に実行され、最終結果(10000)のみが表示されます。

DisplayAlerts

コードの実行中に警告を表示しないようにExcel VBAに指示できます。

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

ActiveWorkbook.Close

ワークシートのコマンドボタンをクリックすると、Excel VBAはExcelファイルを閉じ、変更内容を保存するかどうかを尋ねます。

DisplayAlerts

2.コードの実行中にこの警告を表示しないようにExcel VBAに指示するには、次のようにコードを更新します。

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

その結果、Excel VBAは変更内容を保存することを要求せずにExcelファイルを閉じます。変更は失われます。

計算

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

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

Application.Calculation = xlCalculationManual

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

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

計算オプション

3.セルA1の値を変更すると、セルB1の値は再計算されません。

手動計算

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

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

Application.Calculation = xlCalculationAutomatic
また読む: