簡単なアドインを作ってみる(2) 右クリックメニュー編

ここでは文字の書式設定である「選択範囲で中央」を右クリックメニューに追加するアドインを作ってみましょう。
ThisWorkbookに以下の2つのプロシージャを入力します。
Private Sub Workbook_AddinInstall()
  Dim SubMenu As Object
  Set SubMenu = Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton)
  With SubMenu
    .BeginGroup = True
    .Caption = "選択範囲で中央"
    .OnAction = "gAlignH"
    .FaceId = 222
  End With
End Sub

Private Sub Workbook_AddinUninstall()
  On Error Resume Next
  Application.CommandBars("Cell").Controls("選択範囲で中央").Delete
End Sub
次に標準モジュールを追加して、以下を入力します。
Public Sub gAlignH()
  Selection.HorizontalAlignment = xlCenterAcrossSelection
End Sub
ここまで出来たらファイルを保存します。
ファイルタイプは、Excelアドイン(*.xla)
Excel2007以降ではマクロが別ファイルになってたような気がしますが
にゃたろーはExcel2007を持っていないため分かりません。
拡張子を除いた部分(ベース名)がアドイン名称になります。


【解説】
■Workbook_AddinInstall()
Dim SubMenu As Object
オブジェクト変数の宣言です。

Set SubMenu = Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton)
右クリックメニューの一番下に項目を1個追加します。

.BeginGroup = True
ボタングループの始まりとして設定します。

.Caption = "選択範囲で中央"
メニューに表示される文字列を設定します。

.OnAction = "gAlignH"
選択範囲でセンタリングする処理が書いてあるプロシージャ名を設定します。

.FaceId = 222
メニュー名の左側に表示するアイコンを指定します。

■Workbook_AddinUninstall()
Application.CommandBars("Cell").Controls("選択範囲で中央").Delete
右クリックメニューから「選択範囲で中央」を削除します。

■gChangeGrid()
Selection.HorizontalAlignment = xlCenterAcrossSelection
選択済み範囲に対してセンタリングをする処理です。