第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入門」の記事
第54回.Windowsオブジェクト
第55回.Worksheetオブジェクト
第56回.Rangeオブジェクト(RangeとCells)
第57回.Applicationのプロパティ(マクロ高速化と警告停止等)
第58回.コレクションとは(Collection)
第59回.コレクション処理(For Each)
第60回.エラー処理(On Error)
第61回.「On Error GoTo」と「Exit Sub」
第62回.「On Error Resume Next」とErrオブジェクト
第63回.ブックを開く(Open,Add)
第64回.ブックを閉じる・保存(Close,Save,SaveAs)
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
