[VBA]エクセル中の図形を3秒後に非表示にする。

やりたきこと

エクセル上でボタンを押下し、処理が完了したらMsgboxを表示する。というのがよくある流れだと思うが、頻繁に使うツールの場合、MsgboxでOKを押すことすら面倒であったりする。

そのため、Msgboxではなく完了した旨のメッセージを記載した図形を表示、非表示することで、1クリック削減することにする。

 

ソースコード

Option Explicit

' メッセージを表示にする
Public Sub TriggerButton()
    Application.OnTime Now + TimeValue("00:00:03"), "tekitou"
    Call SetVisible(True)
End Sub

' メッセージを非表示にする
Private Sub HiddenMessage()
    Call SetVisible(False)
End Sub

' メッセージの表示非表示を切り替える
Private Sub SetVisible(flag As Boolean)
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Dim s As Shape
    Set s = ws.Shapes("Square")
    s.Visible = flag
End Sub