第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
ステータス バーの文字列を消し既定値に戻すには、
または、
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 ・・・新着記事一覧を見る
VBA100本ノック 79本目:Wordにセル範囲を図として挿入|VBA練習問題(2月1日)
VBA100本ノック 78本目:グラフのデータ範囲拡張|VBA練習問題(1月30日)
VBA100本ノック 77本目:シート挿入イベント|VBA練習問題(1月29日)
VBA100本ノック 76本目:ボタンの表示名の位置へ移動|VBA練習問題(1月27日)
VBA100本ノック 75本目:ログインフォームの作成|VBA練習問題(1月26日)
VBA100本ノック 74本目:1シート複数表をDB形式に変換|VBA練習問題(1月25日)
VBA100本ノック 73本目:新規ブックにボタン作成しマクロ登録|VBA練習問題(1月23日)
VBA100本ノック 72本目:ITをDXに変換(文字列操作)|VBA練習問題(1月22日)
VBA100本ノック 71本目:パワーポイントへグラフを貼り付け|VBA練習問題(1月20日)
VBA100本ノック 70本目:ステータスバーに1秒ごとに時刻が表示|VBA練習問題(1月19日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。