図形オブジェクトを使って、マクロが実行中であることを示すポップアップメッセージを表示する方法を紹介します。VBAのユーザーフォームを使うより手軽に実装できます。
テキストボックスなどの図形を非表示にしておき、マクロの実行中だけ表示するという仕掛けです。
ポップアップメッセージの作成
図形のテキストボックスでメッセージを作成します
図形のプロパティで、[セルに合わせて移動やサイズ変更をしない]を選択します
マクロでの処理対象の図形を特定できるよう、固有の名前を付けます
- [ホーム]タブの[検索と選択]から[オブジェクトの選択と表示]をクリックします
- 図形の名前を「Macro 実行中メッセージ」などに書き換えます
図形名の右の目形アイコンをクリックします
図形が非表示になります。
マクロ内でのポップアップのオン・オフ
Sub Macro1()
'ポップアップ図形を表示
ActiveSheet.Shapes("Macro実行中メッセージ").Visible = True
'(処理本体)
'ポップアップ図形を非表示
ActiveSheet.Shapes("Macro実行中メッセージ").Visible = False
End Sub
応用 : マクロの実行ボタンにも
図形にはマクロを登録して実行ボタンのように使うこともできます。複数のマクロを順番に実行するような場合にこの仕組みを応用すると、処理①が完了したら処理②の実行ボタンが現れるようにします。①が正常完了しないと処理②が実行できないようにできます。
ボタン型図形を二つ作成し、それぞれ処理①と処理②を登録する
処理②のボタンを非表示にしておく
処理①のマクロで、チェックが正常終了した場合のフローで処理②ボタンを表示する