【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として約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

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

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