スライドショー

【ExcelVBA入門】DisplayAlertsプロパティでメッセージを制御する方法とは

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAでメッセージを非表示にする方法を知っていますか?DisplayAleartsプロパティの値を変更すれば、簡単にメッセージの表示/非表示を変更することができます。

そこで今回は、

  • DisplayAleartsプロパティの使い方

といった基礎的なことから、

  • DisplayAlertsプロパティを使うタイミングとは
  • DisplayAlertsプロパティを使った具体的なサンプルコード
  • マクロの記録で作ったコードを使うときの注意点

といった応用的な方法まで、徹底的に解説します!

DisplayAlertsプロパティとは

はじめに、DisplayAlertsプロパティについて簡単に解説します。DisplayAlertsプロパティとは、Applicationオブジェクトのプロパティの1つで、値を変更することでメッセージの表示/非表示を制御することができます。

使い方は以下のとおりです。使い方:

Application.DisplayAlearts = 値

値をTrueにするとメッセージ表示、Falseにすると非表示にすることができます。1行で変更することができるので、とても簡単ですよね。

DisplayAlertsプロパティを使うタイミングとは

ここまでの説明を聞いていると、

あえてメッセージを表示しないケースって、あるのかな?

と思う方も多いと思います。なので、どういったケースで使うのか簡単に解説しますね。メッセージの制御は、ファイルの保存、データクリア、シートやブックの削除など、確認メッセージがでてくるときによく使います。

例えば、「新しくファイルを作成して名前を付けたあと、名前をつけて保存する処理」があったとします。ファイルを保存するときに同じ名前のファイルがあった場合、以下のように確認メッセージがでてしまいます。

サンプルコード:

Sub Test1()
  'ブック作成
  Dim wb1 As Workbook
  Set wb1 = Workbooks.Add
 
  'ブック保存
  wb1.SaveAs Filename:=ThisWorkbook.Path & "\" & "SaveAsで保存したファイル.xlsx"
  
  'ブックを閉じる
  wb1.Close
End Sub

実行中に出てくるメッセージ:

メッセージが出てしまうと処理が途中で止まってしまうため、最後のブックを閉じる処理が実行されずに固まってしまいます。保存時のメッセージを表示せずに保存したい場合は、保存処理の前後に「DisplayAlearts」の値を変更して、以下のようにします。

サンプルコード:

Sub Test()
  'ブック作成
  Dim wb1 As Workbook
  Set wb1 = Workbooks.Add
 
  'ブック保存
  Application.DisplayAlerts = False 'メッセージを非表示
  wb1.SaveAs Filename:=ThisWorkbook.Path & "\" & "SaveAsで保存したファイル.xlsx"
  Application.DisplayAlerts = True  'メッセージを再表示
  
  'ブックを閉じる
  wb1.Close
End Sub

このように、簡単にメッセージの表示/非表示を制御することができます。ちなみに、サンプルで紹介したワークブックの保存方法については以下記事で詳しく解説しているので、気になる方は見てみてくださいね!

【ExcelVBA入門】ワークブック操作する方法について徹底解説!
更新日 : 2019年8月28日

補足:マクロの記録で作ったコードを使うときの注意点

Excelの操作を保存して自動でマクロを作ってくれる機能に、マクロの記録があります。操作をマクロにしてくれるので、自分が作りたい動きをVBAに変換したいときにとても便利なのですが、この機能には落とし穴があります。

それは、「記録時の操作のみをマクロ化するため、同じ操作をもういちど動かすことを想定したコードになっていない点」です。先ほどの「名前を付けてファイルを保存する処理」の場合、操作を記録している1回目はファイルがないためメッセージが出ません。

しかし、保存したマクロを実行した2回目は既にファイルが存在するため、先ほどのメッセージが出てしまいます。そのため、マクロの記録で保存したコードであっても、2回目に処理が同じように動くかどうか確認するのがおすすめです!

マクロの記録の使い方については、以下で詳しく解説しているので気になる方は見てみてくださいね!

【ExcelVBA入門】マクロの記録を使って簡単にマクロを作る方法とは
更新日 : 2019年9月1日

まとめ

今回は、メッセージの表示/非表示を制御するDisplayAlertsプロパティの使い方について解説しました。メッセージを表示せずに処理を動かしたい場合によく使うので、覚えておくのがおすすめです!

使い方も簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説