トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第15話「既存システムとの兼ね合い」2/4 :Applicationオブジェクトとは?

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第15話 「既存システムとの兼ね合い」

Applicationオブジェクトとは?

そのころ会社では、残業した岬さんと森川くんが絶賛勉強中です。

「このApplication.Callerの"Application"って、一体なんなんです?」 「いいところに目をつけたわね。
それはApplicationオブジェクトと言って、VBAを実行しているアプリケーションを参照しているの。
ここではExcel VBAだから、Applicationオブジェクトは、実行しているExcelそのものよ」
そう言うと、岬さんはVBEにカタカタと何やら打ち込み始めました。

「…っと。
Applicationオブジェクトには、便利なメソッドやプロパティがいーっぱいあるの。
よく使うのは、こんなトコロね」

'特定の警告やメッセージを表示しない
Application.DisplayAlerts = False

'計算方法のモードを手動にする
Application.Calculation = xlCalculationManual

'イベントの発生を許可しない
Application.EnableEvents = False

'ステータスバーの文字列を設定する
Application.StatusBar = "表示したい文字列"

'画面表示の更新を停止する
Application.ScreenUpdating = False

「見てわかるように、全てアプリケーションそのものに対する命令でしょ?
マクロの実行時に、これらの動作をExcelにさせたいケースが多々あるの。
そんなときに使う、いわゆる"定番"のコードよ」」
「すごい……VBAって、こんな細かい制御もできるんっスね」 森川くんがキラキラと目を輝かせながら、画面を見つめます。

「Applicationオブジェクトには、まだまだ便利な命令がたくさんあるんだけど…、
あまりいっぺんにやっても混乱するから。
…あ、ちなみにDisplayAlertsとScreenUpdating以外は、マクロの終了後も変更が有効になったままだから、こんな感じで戻しておくのよ」

'計算方法のモードを自動にする
Application.Calculation = xlCalculationAutomatic

'イベントの発生を許可する
Application.EnableEvents = True

'ステータスバーの表示を既定に戻す
Application.StatusBar = False

「はあぁ~~~」 森川くんが、うっとりとした表情で岬さんを見つめます。

一覧にもどる