第57回.Applicationのプロパティ(マクロ高速化と警告停止等)
Applicationは、Excel全体をあらわすオブジェクトです。
つまり、エクセルそのものだと考えて下さい。
ここでは、そのプロパティの一部を紹介します。
Applicationは、Excel全体をあらわすオブジェクトなのですから、
このオブジェクトを説明すると言う事は、Excel全てを説明する事になってしまいます。
このようなApplicationを省略できるものは省略して書くことが多いので意識せずに使っているものが多くあります。
しかしApplicationのメソッドは、その使い方が難しいものが多いので、今後、少しずつ個別に紹介します。
ここでは、Applicationが省略できないプロパティの中から良く使われるプロパティを紹介します。
Applicationの主要プロパティ
プロパティ | 説明 |
Calculation | 計算方法のモード、自動・手動の切り替え |
Caller | Visual Basic を呼び出した方法についての情報 |
Cursor | ポインターの形状を設定 |
Dialogs | すべての組み込みダイアログ ボックス |
DisplayAlerts | マクロの実行中に特定の警告やメッセージの表示を制御 |
EnableEvents | 指定されたオブジェクトに対してイベントの発生を制御 |
FileDialog | ファイル ダイアログ |
Interactive | キーボードやマウスからの入力を受け付けるかどうか制御 |
ScreenUpdating | マクロの実行中に画面表示の更新を制御 |
StatusBar | ステータス バーの文字列を設定 |
以下では重要かつ頻繁に使われるものだけを順に説明します。
ScreenUpdating(マクロVBAの高速化)
マクロの先頭の方で、
その画面更新にかかる時間が不要になり、それだけ早く処理が終了します。
マクロの最期で、
DisplayAlerts(警告停止)
例えば、シートを削除する場合です。
シート削除するときは、確認メッセージが表示されます。
このような、応答が必要なメッセージの表示を止める為に使用します。
マクロが終了すると、自動的に表示する状態になりますが、
マクロの最期で、
Interactive(ユーザー操作の禁止)
ただし、マクロの終了で、自動的には戻りません。
Application.Interactive = True
として下さい。
忘れると、マクロ終了後もキーボード操作が効かなくなってしまいます。
Calculation(計算方法)
xlCalculationAutomatic | 自動 |
xlCalculationManual | 手動 |
xlCalculationSemiautomatic | データテーブル以外の自動 |
Application.Calculation = xlCalculationManual
これ以降、自動計算は行われなくなります。
この設定は、マクロ終了後も引き続き有効となりますので、
もし、マクロ実行前の状態に戻す必要がある場合は、
事前に変数に退避しておいて、その変数を戻すようにしてください。
Dim appCalc As XlCalculation '型はVariantでも構いません。
appCalc = Application.Calculation
Application.Calculation = xlCalculationManual
'各種処理・・・
Application.Calculation = appCalc
StatusBar
ただし、高速にVBAが動作している最中は画面の再描画は必ず行われるわけではありません。
適宜、DoEvents をいれて再描画されるようにしてください。
Application.StatusBar = "実行中"
DoEvents
ステータス バーの文字列を消し既定値に戻すには、
または、
Application.StatusBar = vbNullString
Cursor
マクロVBA実行中にカーソルが頻繁にちらつくような場合は、この設定により処理速度が向上します。
xlDefault | 標準のポインター |
xlIBeam | I 字型ポインター |
xlNorthwestArrow | 矢印型ポインター |
xlWait | 砂時計型ポインター |
Application.Cursor = xlWait ← この時点でウエイトカーソルになります。
Application.Cursor = xlDefault ← 標準のカーソルに戻ります。
その他
Dialogs
これについては、今後個別に紹介します。
以下も参考にしてください。
マクロの開始・終了(Applicationのプロパティ)
同じテーマ「マクロVBA入門」の記事
第58回.コレクションとは(Collection)
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。