【VBA】シェイプでボタンを作成

マクロ実行ボタンを図形で見栄えの良いものにしたくて作成してみました。

ボタンを押した感じも再現しています。

ボタンを押している動きは、影の有り無しと位置を移動させて戻すという動きで表しています。

いくつかの形に変更可能で、フォントや色も選択できるようにしてみました。

組み込むときはボタンを押したときの動きのモジュールも入れておかないといけないため、
そこまで必要でない時は動きなしの方がコードが分かりやすくなるかと思います。

ボタンを押した時の動きのコード

Sub ボタン押す()

    'ボタンの浮き具合(影)の設定値
    '---------------------------------
    Dim 透明度 As Double: 透明度 = 0.2
    Dim ぼかし As Double: ぼかし = 2
    '---------------------------------

    'クリックしたシェイプを取得
    Dim shp As Shape
    Set shp = ActiveSheet.Shapes(Application.Caller)
    
    '影を消してボタンを右下に移動
    Dim 影値 As Double
    With shp
        影値 = .Height / 15 'ボタンの大きさに応じて影オフセット値を設定
        .Shadow.Visible = False
        .Left = .Left + 影値
        .Top = .Top + 影値
    End With
    
    Application.Wait [Now()] + 50 / 86400000
    DoEvents
    Application.Wait [Now()] + 50 / 86400000
    DoEvents

    '影を戻して位置を戻す
    With shp
        .Left = .Left - 影値
        .Top = .Top - 影値
        With .Shadow
            .Visible = True
            .Transparency = 透明度  '透明度
            .OffsetX = 影値          'オフセット量X
            .OffsetY = 影値          'オフセット量Y
            .Blur = ぼかし          'ぼかし
        End With
    End With
    
End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA