Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】思わずポチッと押したくなるボタンの作り方

Last updated at Posted at 2020-09-13

こんにちは。
日曜日は、ためになるのかならないか分からない、そんなブログを書こうかなと思っています。
くだらない内容です。ご容赦ください。

今回は__思わずポチッと押したくなるボタンの作り方__です!

Excelマクロでは、挿入した好きな図形にマクロを登録できますが、より押したくなる、そしてボタンを押した感がでるボタンが欲しくて作りました。
お好きな処理と組み合わせて使ってみてください。

##ボタンを作成して加工する
まず適当な楕円の図を挿入して、ずの名前を__btnStart__とします。
image.png

以下のマクロで図の設定を施します。

Sub btnStartSet() 'ボタンの作成
    Dim btnSheet As Worksheet
    Set btnSheet = ActiveSheet
    btnSheet.Shapes("btnStart").Select
'形、サイズ、名前
    btnSheet.Shapes("btnStart").Height = 50.2
    btnSheet.Shapes("btnStart").Width = 66.3
'塗りつぶし
    btnSheet.Shapes("btnStart").Fill.ForeColor.RGB = RGB(255, 0, 0) '塗りつぶしの色
'枠線
    Selection.ShapeRange.Line.Visible = msoFalse
'3D
    btnSheet.Shapes("btnStart").ThreeD.RotationY = -35.1560166667 '図形のY軸周りの回転角度
    btnSheet.Shapes("btnStart").ThreeD.FieldOfView = 45 '3-D図形遠近感
    btnSheet.Shapes("btnStart").ThreeD.BevelTopType = msoBevelArtDeco '面取り設定
    btnSheet.Shapes("btnStart").ThreeD.BevelTopInset = 10
    btnSheet.Shapes("btnStart").ThreeD.BevelTopDepth = 6
End Sub

これです。
image.png
押したら何かが起こりそうなボタンです!
「お…押してみたい…」

##ボタンを押したあとの加工
作ったボタンに、__押した感__が出るように以下のマクロを登録して実行します。

Sub btnStartClick() 'ボタンを押したあとの加工
    Dim btnSheet As Worksheet
    Set btnSheet = ActiveSheet
    
    btnSheet.Shapes("btnStart").Select
    
    btnSheet.Shapes("btnStart").ThreeD.BevelTopType = msoBevelSlope '面取り設定
    btnSheet.Shapes("btnStart").ThreeD.BevelTopInset = 5.5 '3D加工の幅
    btnSheet.Shapes("btnStart").ThreeD.BevelTopDepth = 6 '3D加工の高さ
End Sub

押したら
image.png
こうなります。
「ペコってなった!!」

##押す前の状態にリセットする
以下のマクロをリセットボタンに登録してリセットさせます。

Sub btnStartEnd() 'ボタンをリセット加工
    Dim btnSheet As Worksheet
    Set btnSheet = ActiveSheet
    
    btnSheet.Shapes("btnStart").Select
    
    btnSheet.Shapes("btnStart").ThreeD.BevelTopType = msoBevelArtDeco '面取り設定
    btnSheet.Shapes("btnStart").ThreeD.BevelTopInset = 10 '3D加工の幅
    btnSheet.Shapes("btnStart").ThreeD.BevelTopDepth = 6 '3D加工の高さ
End Sub

image.png
↓リセットする
image.png

##ちなみに
挿入>3Dモデル>"ボタン"で検索 にそれっぽいのもあるみたいです~
初めてみました!
image.png

##おまけ
image.png
押すなよって言われると押したくなるよね!

13
9
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?