ThisWorkBookに、ワークブック読み込み時の処理(Workbook_Open)追加。
Option Explicit Private Sub Workbook_Open() Dim bar As CommandBar Dim button As CommandBarButton DeleteCommandBar Set bar = Application.CommandBars.Add(Name:="ツールバー名", Position:=msoBarTop) Set button = bar.Controls.Add(Type:=msoControlButton) button.Style = msoButtonIconAndCaption button.FaceId = 172 button.Caption = "キャプション名" button.OnAction = "サブルーチン名" Set button = Nothing bar.Visible = True Set bar = Nothing End Sub Private Sub Workbook_AddinUninstall() DeleteCommandBar End Sub Private Sub DeleteCommandBar() On Error Resume Next Application.CommandBars("ツールバー名").Delete On Error GoTo 0 End Sub
FaceIdについては、下記を参照
Office TANAKA - Excel VBA Tips[FaceIdの図について]
DeleteCommandBarでは、ツールバーが無いときの削除処理のエラーハンドリングを無効化。
作成したアドインは、xlam形式で、%USERPROFILE%\AppData\Roaming\Microsoft\AddIns
に保存。
アドインのタイトルや説明は、エクスプローラー上で、ファイルのプロパティから編集。AddInsフォルダに入ると編集できないようなので別の場所で変更してから格納する。