すべてのオブジェクトの母親は、Excel自体です。私たちは、Applicationオブジェクトを呼び出します。アプリケーションオブジェクトは、Excelに関連する多くのオプションへのアクセスを提供します。

WorksheetFunction

あなたはExcelの機能にアクセスするために、Excel VBAでWorksheetFunctionプロパティを使用することができます。

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

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

ワークシート上のコマンドボタンをクリックすると、ExcelのVBAは、セルA1とセルA2の値の平均値を計算し、セルA3に結果を格納します。

WorksheetFunction in Excel VBA

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

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

ScreenUpdating [[screenupdating]を

コードを実行しながら、時々、あなたは(ちらつき回避するため)無効画面更新にそれが役に立つかもしれません。その結果、あなたのコードは速く実行されます。

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

Dim i As Integer

For i = 1 To 10000

Range("A1").Value = i

Next i

ワークシート上のコマンドボタンをクリックすると、ExcelのVBAは、各値を二のほんの一部が表示され、これは時間がかかることがあります。

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の

あなたは、コードを実行中にアラートを表示しないようにエクセル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.あなたは、ファイル、オプション、式をクリックすることで、これを確認することができます。

Calculation Options

あなたは、セルA1の値を変更したとき3.ここで、セルB1の値が再計算されません。

Manual Calculation

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

4.ほとんどの場合、あなたはあなたのコードの末尾に再び自動的に計算を設定します。単純にこれを達成するために、次のコード行を追加します。

Application.Calculation = xlCalculationAutomatic