マクロ実行用のボタンが複数必要な場合もあります。ボタンをまとめて作るためのマクロを紹介します。
マクロボタンを横2つとか縦2つなど並べてみる
今度は、マクロのボタンを2個、横に並べて作りたいと思います。
もちろん、前回のコードを2回繰り返してもいいのですが、コードには、いろいろな書き方があるので、紹介しようと思います。
Excelバージョン:
(サンプルファイルは、こちらから 2010マクロ講座27回サンプルデータ)
Sub ボタン作成2個横()
Dim セル1, セル2
Set セル1 = ActiveSheet.Cells(2, 2)
Set セル2 = ActiveSheet.Cells(2, 4)
With ActiveSheet.Buttons.Add(セル1.Left, セル1.Top, セル1.Width, セル1.Height)
.Name = "ボタンB2"
.OnAction = "ボタン1"
.Characters.Text = "ボタン1"
End With
With ActiveSheet.Buttons.Add(セル2.Left, セル2.Top, セル2.Width, セル2.Height)
.Name = "ボタンC2"
.OnAction = "ボタン2"
.Characters.Text = "ボタン2"
End With
End Sub
Sub ボタンの位置とサイズ()
With ActiveSheet.Buttons.Add(100, 10, 80, 20)
.Name = "ボタン前"
.Caption = "ボタン前"
.OnAction = "ボタン前"
End With
With ActiveSheet.Buttons.Add(200, 10, 80, 20)
.Name = "ボタン後"
.Caption = "ボタン後"
.OnAction = "ボタン後"
End With
End Sub
実行すると、このようにボタンが作成されます。
Sub ボタン前()
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
End Sub
Sub ボタン後()
MsgBox ActiveSheet.Shapes(Application.Caller).Top
MsgBox ActiveSheet.Shapes(Application.Caller).Left
MsgBox ActiveSheet.Shapes(Application.Caller).Width
MsgBox ActiveSheet.Shapes(Application.Caller).Height
End Sub

Set セル1 = ActiveSheet.Range("C2")
Set セル2 = ActiveSheet.Range("C4")
実行すると縦に2つのボタンが作成されます。