Excel マクロ VBA の 高速化

Excelの広場

Excel VBA を高速化するマクロを紹介します。

このまま、コピペ して使って頂ければ OK です。

Max
マクロ とか VBA に関して?な方は、

下記記事をお読みくださいだワン!

目次

Excel マクロ・VBA・VBE ってなぁに?

Excelの広場   爺さんが感じた事なんじゃが、Excelの自動化の事を マクロ と読んだり、VBA と読んだり、VBE と言う言葉もでてきたり..ハッキリしていないので、Max や、説明してくれる ...

続きを見る

【高速化 マクロ】

Property Let Speeding_up (ByVal flag As Boolean) '画面切替、イベント抑制、計算モード切替

With Application
.EnableEvents = Not flag
.ScreenUpdating = Not flag
.Calculation = IIf(flag, xlCalculationManual, xlCalculationAutomatic)
End With

End Property

この VBA コードは、オブジェクト の
プロパティー を操作しています。

操作しているのは、

  1. イベント発生(VBAを実行する指令)の プロパティー Enable を 有効にするか/しないか。
  2. 画面の更新 を するか/しないか。
  3. 計算を 手動にするか/自動にするか。

上記 3つです。。

VBA 処理を速くするには、

  • イベント発生 ⇒ 無効
  • 画面更新 ⇒ 無効
  • 計算 ⇒ 手動

で、元の状態(Excelをいつも使う状態)に戻すには、その逆で..

  • イベント発生 ⇒ 有効
  • 画面更新 ⇒ 有効
  • 計算 ⇒ 自動

に、する必要があります。

使い方は、

Speeding_up (変数)を
True にすれば、 高速化

Speeding_up (変数)を
False にすれば、 にもどります。

VBA  高速化 コードの説明

プロパティー を操作するので、プロパティープロシージャ を使っています。

変数は 、Speeding_up です。

データー型は、Boolean
True(真)、Fause(偽 )です。

With から End With に挟まれているアプリケーションのプロパティーを操作します。

Speeding_up 変数を True 【VBA を高速化】

「イベント発生」の 操作

.EnableEvents = Not flag

Not flag なので 無効 になります。

「画面変更 」の操作

.ScreenUpdating = Not flag

Not flag なので 無効 になります。

「計算 」の 切替操作

.Calculation = IIf(flag, xlCalculationManual, xlCalculationAutomatic)

True に すると 最初に
書かれている手動 になります。

Speeding_up 変数を False 【元に戻す。】

「イベント発生」の 操作

.EnableEvents = Not flag

Not flag なので 有効 になります。

「画面変更 」の操作

.ScreenUpdating = Not flag

Not flag なので 有効 になります。

「計算 」の 切替操作

.Calculation = IIf(flag, xlCalculationManual, xlCalculationAutomatic)

False に すると 二番目 に、
書かれている自動 になります。

 

 

 

スポンサーリンク

-Excel の広場

Copyright© ドングリ爺のblog , 2024 All Rights Reserved Powered by AFFINGER5.