第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 ・・・新着記事一覧を見る
抜けている数値を探せ|エクセル雑感(2022-07-01)
.Net FrameworkのSystem.Collectionsを利用|VBA技術解説(2022-06-29)
迷路ネコが影分身の術を体得したら…|エクセル雑感(2022-06-27)
迷路にネコが挑戦したら、どうなるかな…|エクセル雑感(2022-06-26)
サロゲートペアに対応した自作関数(Len,Left,Mid,Right)|エクセル雑感(2022-06-24)
「マクロの登録」で登録できないプロシージャーは?|エクセル雑感(2022-06-23)
オブジェクトのByRef、ByVal、Variant|エクセル雑感(2022-06-22)
コメントから特定形式の年月を取り出す|エクセル雑感(2022-06-19)
4,9を使わない連番作成|エクセル雑感(2022-06-17)
連番を折り返して出力|エクセル雑感(2022-06-16)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.マクロって何?VBAって何?|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。