作成したマクロを実行するために、ワークシート上にボタンを配置することがあります。 手作業で行うときは、[表示]-[ツールバー]-[フォーム]で[フォーム]ツールバーを開き、[ボタン]をクリックしてからワークシート上をドラッグします。 実行すると[マクロの登録]ダイアログボックスが表示されるので、ボタンをクリックしたときに実行されるマクロを登録します。 この操作をマクロで行うには次のようにします。Sub Sample1() With ActiveSheet.Buttons.Add(Range("B2").Left, _ Range("B2").Top, _ Range("B2:C3").Width, _ Range("B2:C3").Height) .OnAction = "Sample" .Characters.Text = "Click me" End With End Sub Sub Sample() MsgBox Now End SubボタンはButtonsコレクションで操作できます。追加するときはAddメソッドです。 Addメソッドの引数には、ボタンを挿入する位置と大きさを指定します。 上記のSample1では、セルB2を左上として、セル範囲B2:C3の大きさのボタンを挿入します。 ボタンをクリックしたとき実行されるマクロは、OnActionプロパティで指定します。 実行したプロシージャ名を文字列で指定してください。 ボタンの表面に表示する文字列はCharacters.Textプロパティに指定します。 シートに挿入されている全てのボタンを操作するには、同様にButtonsコレクションを操作します。 次のコードは、シート上に挿入されているボタンのキャプションと登録されているマクロ名をアクティブシートに表示します。Sub Sample2() Dim B As Object, i As Long For Each B In ActiveSheet.Buttons i = i + 1 Cells(i, 1) = B.Characters.Text Cells(i, 2) = B.OnAction Next B End Sub応用すると、特定のボタンだけ削除するなども可能です。 次のコードは、マクロが登録されていないボタンを全て削除します。Sub Sample3() Dim B As Object For Each B In ActiveSheet.Buttons If B.OnAction = "" Then B.Delete Next B End Sub