【VBA】エクセルマクロ実行ボタン

シェイプでエクセルをもっと楽しく!

エクセルを使う上で、業務効率化のためにマクロを活用することは一般的です。マクロを実行するボタンをより魅力的にする方法として、フォームコントロールではなくシェイプを使う手法があります。

「エクセルのマクロ実行ボタンをもっと見栄えよくしたいと思ったことはありませんか?」

本記事では、VBAを使って簡単にシェイプを利用したエクセルマクロ実行ボタンを作成する方法を紹介します。

完成形の紹介

まずは、完成形のボタンの動作を以下のGIFアニメーションでご覧ください。

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

シェイプを使った実行ボタンの利点

シェイプを使うことで、見た目を自由にデザインでき、ユーザーの操作性も向上します。

さらに、フォームコントロールよりも直感的に配置やスタイルの変更が可能です。

また、楽しく使えるインターフェイスは、業務のモチベーション向上に繋がります。

シェイプのデザインをカスタマイズ

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

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

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

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