第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 ・・・新着記事一覧を見る
列全体を指定する時のRangeとColumnsの違い|ツイッター出題回答 (2023-09-24)
シートのActiveXチェックボックスの指定方法|ツイッター出題回答 (2023-09-24)
ByRef引数の型が一致しません。|ツイッター出題回答 (2023-09-22)
シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。