以下の内容はhttps://www.limecode.jp/entry/procedure/displayalerts-true-falseより取得しました。


処理前後のDisplayAlertsのONOFFを関数化する

シートを削除する際、こんなコードを実行します。

Application.DisplayAlerts = False
削除したいシート.Delete
Application.DisplayAlerts = True

 
シートを削除しようとすると以下のダイアログが出てしまうため、
これを非表示(スキップ)して削除を実行するコードですね。

シート削除の確認ダイアログ


さてこのコードですが、たったこれだけの処理に3行も使うため、
書くのも微妙に面倒で、コードもちょっと邪魔です。

なのでこういったコードは、思い切って関数化してしまいましょう。

Sub シートを削除する(削除シート As Worksheet)
    Application.DisplayAlerts = False
    削除シート.Delete
    Application.DisplayAlerts = True
End Sub
' 使用例
Call シートを削除する(ThisWorkbook.Worksheets("○○"))

 
この程度の関数でも3行→1行というコード削減効果がありますし、
入力は「し + Ctrl+Space」で選択入力できるため書くのも簡単です。

地味ですが、

Application.DisplayAlerts = True
削除したいシート.Delete
Application.DisplayAlerts = False

のようにTrue/Falseを書き間違うことがなくなるのもありがたいですしね。


こういった「簡単だけど書くのが面倒なコード」こそ、
作るのが簡単な割に使い勝手がよく、汎用関数化のメリットが大きいです。

数行の、あるいは1行のコードであっても、
ためらわずにSub/Functionに切り出していくとよいでしょう。


DisplayAlerts系で言うと、

Sub ブックを保存せず閉じる(対象ブック As Workbook)
    Application.DisplayAlerts = True
    対象ブック.Close False
    Application.DisplayAlerts = False
End Sub

この関数も結構便利です。


またDisplayAlerts以外にも、

  • Unprotect → 処理 → Protect
  • Visible=True → 処理 → Visible=False
  • Hidden=False → 処理 → Hidden=True

あたりでも作っておくと楽な処理が結構あります。

見かけたら汎用関数にしてみてください。




以上の内容はhttps://www.limecode.jp/entry/procedure/displayalerts-true-falseより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14