【Excel】エクセル VBA編   Application・アプリケーションオブジェクトとは??そのお

 

 

 

すべてのオブジェクトの母はExcelそのものです。

オブジェクトとはエクセルのワークブック・ワークシート・セル・グラフ・オートシェイプなど、操作の対象となるもののことを言います。また、複数のオブジェクトの集合体はコレクションと呼ばれます。

例えば、以下の図で説明すると、ワークブック・ワークシート・セルはオブジェクトですが、ワークシート全体はコレクションとなります

アプリケーションオブジェクトを使用すると、Excel関連のさまざまなオプションにアクセスできます。

 

 

WorksheetFunction

Excelの関数にアクセスするには、Excel VBAの WorksheetFunctionプロパティを使用できます。

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

範囲( “A3″)値= Application.WorksheetFunction.Average(範囲( “A1:A2″))

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

Excel VBAのWorksheetFunction

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

範囲( “A3″)値= “= AVERAGE(A1:A2)”

スクリーン更新

コードの実行中は画面の更新を無効にして(ちらつきを防ぐために)便利な場合があります。結果として、あなたのコードはより速く走るでしょう。

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

薄暗い私は通り の整数

の場合 I = 1  10000 
    の範囲( “A1″)。値=私は
次の

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

スクリーン更新

2.処理をスピードアップするために、次のようにコードを更新してください。

薄暗い私がしたよう 整数

Application.ScreenUpdating = Falseの

ために I = 1  10000 
    の範囲( “A1″)。値=私は
次の私は

= Application.ScreenUpdating 

その結果、コードの実行速度が大幅に向上し、最終結果(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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です