マクロ実行中のポップアップメッセージを図形で手軽に作成する

図形オブジェクトを使って、マクロが実行中であることを示すポップアップメッセージを表示する方法を紹介します。VBAのユーザーフォームを使うより手軽に実装できます。

テキストボックスなどの図形を非表示にしておき、マクロの実行中だけ表示するという仕掛けです。

図形メッセージはシート内の固定位置に表示されます。このため、実行中にシートの表示範囲が移動したり切り替わったりするようなマクロには不向きです。

ポップアップメッセージの作成

図形のテキストボックスでメッセージを作成します

図形メッセージ

図形のプロパティで、[セルに合わせて移動やサイズ変更をしない]を選択します

マクロでの処理対象の図形を特定できるよう、固有の名前を付けます

  1. [ホーム]タブの[検索と選択]から[オブジェクトの選択と表示]をクリックします
  2. 図形の名前を「Macro 実行中メッセージ」などに書き換えます

図形メッセージ

図形名の右の目形アイコンをクリックします
図形が非表示になります。

図形の「名前」は、ふつうにExcelを使うなかでは用途のない情報です。逆に、ユーザーが名前を変更してしまうリスクもほとんどないといえます。

マクロ内でのポップアップのオン・オフ

Sub Macro1()
  'ポップアップ図形を表示
  ActiveSheet.Shapes("Macro実行中メッセージ").Visible = True
  
  '(処理本体)
  
  'ポップアップ図形を非表示
  ActiveSheet.Shapes("Macro実行中メッセージ").Visible = False
End Sub

応用 : マクロの実行ボタンにも

図形にはマクロを登録して実行ボタンのように使うこともできます。複数のマクロを順番に実行するような場合にこの仕組みを応用すると、処理①が完了したら処理②の実行ボタンが現れるようにします。①が正常完了しないと処理②が実行できないようにできます。

ボタン型図形を二つ作成し、それぞれ処理①と処理②を登録する

処理②のボタンを非表示にしておく

処理①のマクロで、チェックが正常終了した場合のフローで処理②ボタンを表示する

タイトルとURLをコピーしました