ExcelマクロVBA入門
第57回.Applicationのプロパティ(マクロ高速化と警告停止等)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2019-09-22

第57回.Applicationのプロパティ(マクロ高速化と警告停止等)


Applicationは、Excel全体をあらわすオブジェクトです
つまり、エクセルそのものだと考えて下さい。
ここでは、そのプロパティの一部を紹介します。


ここで紹介するApplicationのプロパティはほんの一部です。
Applicationは、Excel全体をあらわすオブジェクトなのですから、
このオブジェクトを説明すると言う事は、Excel全てを説明する事になってしまいます。

WorkbooksもApplicationのプロパティですが、
Applicationを明示して書く事はありませんので、意識する必要はありません。
また、当然メソッドもあります。
しかし、Applicationのメソッドは、その使い方が難しいものが多いので、
今後、少しずつ個別に紹介します。

Applicationオブジェクトに含まれるプロパティ・メソッドは、非常にたくさんあります。

Applicationのプロパティ、メソッド、イベントの一覧
エクセルそのものである、Applicationオブジェクトのプロパティ、メソッド、イベントの一覧です。数も多く全てを覚えるようなものではありません、必要に応じて調べて使う一覧になります。ただし、どのようなものがあるかを、ざっと目を通しておくと後々役立つことも多いでしょう。
ごく一部、良く使うものを以下に紹介します。

Applicationの主要プロパティ



プロパティ 説明
Calculation 計算方法のモード、自動・手動の切り替え
Caller Visual Basic を呼び出した方法についての情報
Cursor ポインターの形状を設定
Dialogs すべての組み込みダイアログ ボックス
DisplayAlerts マクロの実行中に特定の警告やメッセージの表示を制御
EnableEvents 指定されたオブジェクトに対してイベントの発生を制御
FileDialog ファイル ダイアログ
Interactive キーボードやマウスからの入力を受け付けるかどうか制御
ScreenUpdating マクロの実行中に画面表示の更新を制御
StatusBar ステータス バーの文字列を設定

以下では重要なものから順に説明します。

ScreenUpdating(マクロVBAの高速化)

マクロVBAの実行中に画面表示の更新を止めて、マクロを高速に処理されるようにします。
マクロの先頭の方で、
ScreenUpdating = False
こうすることで、マクロ実行中の画面表示が更新されないので、
その画面更新にかかる時間が不要になり、それだけ早く処理が終了します。
マクロが終了すると、自動的に画面表示が更新されますが、
マクロの最期で、
ScreenUpdating = True
として、明示的に書いておく方が良いでしょう。

DisplayAlerts(警告停止)

マクロVBAの実行中に特定の警告やメッセージが表示される事があります。
例えば、シートを削除したりする場合です。
シート削除するときは、確認メッセージが表示されます。
この応答が出ると、マクロはそこで応答待ちになり、ボタンのクリックが必要になります。
このような、応答が必要なメッセージの表示を止める為に使用します。
DisplayAlerts = False
これで、応答メッセージは表示されず、マクロは自動的に次に進むようになります。
マクロが終了すると、自動的に表示する状態になりますが、
マクロの最期で、
DisplayAlerts = True
として、明示的に書いておく方が良いでしょう。

第66回.シートのコピー・移動・削除(Copy,Move,Delete)
シートをコピーや移動をしたり、また削除する場合の説明です、VBAでは、雛形シートをコピーして使ったり、不要なシートを削除することは頻繁にあります。シートのコピー・移動には、Worksheet.Copyメソッド、Worksheet.Moveメソッド これら、WorkSheetオブジェクトのメソッドを使用します。

Interactive(ユーザー操作の禁止)

キーボードやマウスからの入力を受け付けを停止できます。
Interactive = False
とすると、その間は、キーボードやマウスの入力を受け付けなくなります。
ただし、マクロの終了で、自動的にも戻りません。
必ず
Interactive = True
として下さい。
忘れると、マクロ終了後も、キーボード操作が効かなくなってしまいます

Calculation(計算方法)

計算モードを変更します。

設定値

xlCalculationAutomatic 自動
xlCalculationManual 手動
xlCalculationSemiautomatic データテーブル以外の自動

Calculation = xlCalculationManual
この記述をすることで、
これ以降、自動計算は行われなくなります。
この設定は、マクロ終了後も引き続き有効となりますので、
必要に応じて、xlCalculationAutomaticに戻してください。

StatusBar

ステータス バーに文字列を設定します。
StatusBar = "文字列"
これで、ステータスバーに文字列が表示されます。
ステータス バーの文字列を既定値に戻すには、
StatusBar = False
とすることで、それまでに表示していた文字列は消されます。

Cursor

マウスポインターの形状を設定します。

設定値



xlDefault 標準のポインター
xlIBeam I 字型ポインター
xlNorthwestArrow 矢印型ポインター
xlWait 砂時計型ポインター

Cursor = xlWait ← この時点でウエイトカーソルになります。
・・・
Cursor = xlDefault ← 標準のカーソルに戻ります。
このように使用します。

その他

上記以外では、
Dialogs
Excelを操作していると、その時々で多種多様なダイアログが表示されます。マクロVBAでは、Excelの全ての組み込みダイアログを使用することが出来ます。どのようなダイアログがあるか一覧を紹介しつつ、VBAでのダイアログの使い方を解説します。
FileDialog
VBAでファイルを指定するダイアログを扱うには、すでに紹介したGetOpenFilenameやGetSaveAsFilenameがありますが、さらに、今回紹介する、FileDialogオブジェクト こちらも使用することができ、GetOpenFilenameやGetSaveAsFilenameにはない便利な機能が提供されています。
Caller
メニューのシートを作成して、ボタンを配置、そしてボタンにより指定シートに移動する、よくありますが、ボタン一つずつに別々(移動先のシート毎に)のマクロを作成するのは面倒です、そこで、一つのマクロで済ませる方法の紹介です。このVBAなら、どのボタンでもボタンのテキストと同一のシートに移動出来ます。
EnableEvents
マクロVBAの開始時および終了時に指定した方が良いApplicationのプロパティの開設です。特に重要なもの、マクロVBAの処理速度に関係するものを紹介します。Applicationのプロパティの詳細については以下をご覧ください。
このあたりも押さえておくべきプロパティになります。
これについては、今後個別に紹介します。


以下も参考にしてください。
マクロの開始・終了(Applicationのプロパティ)

マクロVBAの開始時および終了時に指定した方が良いApplicationのプロパティの開設です。特に重要なもの、マクロVBAの処理速度に関係するものを紹介します。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)
第64回.ブックを閉じる・保存(Close,Save,SaveAs)


新着記事NEW ・・・新着記事一覧を見る

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • Applicationのプロパティ(マクロ高速化と警告停止等)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ