アドインソフト

Excel のヘルプでは 「アドインは 便利なコマンドや機能を Excel に追加するプログラムです」 と説明されています
アドインの存在自体は知っている方も多いのですが 実際に使ってる方はあまりいないのが現状だと思います
私もなんとなく気になっている存在だったのですが 試してみるまでの行動を起こしてませんでした

ブック内に作成するマクロでは 別の Excel ファイルから使うことができず 不便性を感じることも多々あると思います
アドインの種類には COM アドインという VBVC などの言語で作成されたものと Excel アドインがありますが
Excel アドインについては 上記の問題を解決し さらに登録制であるため 起動のたびにセキュリティ確認が表示される煩わしさも
ありません

ここでは 作成したマクロを Excel アドインとして登録し それを利用する方法について説明します
呼び出されるマクロ (sample_macro) がすでに存在することを前提とします
アドインも通常の Excel ファイルとして作成しておき 配布するときに 配布用に拡張子を .lxa に変更するとよいでしょう

アドインも [ツール][マクロ][マクロ] から実行することはできますが マクロの一覧には表示されないため 直接マクロ名を
入力する必要があります
しかし実際には Excel ファイルからも実行できるという利便性を活かすため 実行用のツールボタンまたはメニューを用意するのが
一般的です

メニューを用意するタイミングは Excel を起動するタイミングではなく アドインを使い始めるときであるため 記述するプロシージャは
Workbook_AddinInstall となります
まずは ThisWorkBook 内に Workbook_AddinInstall を作成します

Private Sub Workbook_AddinInstall()

    Dim o_cmdbar As CommandBarControl

    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls("サンプル").Delete
    Set o_cmdbar = Application.CommandBars("Worksheet Menu Bar").Controls. _
            Add(Type:=msoControlPopup)
    o_cmdbar.Caption = "サンプル"
    With o_cmdbar.Controls.Add(Type:=msoControlButton)
        .Caption = "サンプル1"
        .OnAction = "sample_macro"
    End With

End Sub

メニューの作成を行う際 最初にメニューの削除を行います
もし メニューが残っていた場合には、メニューを再構成するために 削除して何もない状態から始めるためです
仮にメニューが存在しない場合でも On Error Resume Next があるため メニューの削除が無視されます

また アドインの使用を終了するときにメニューから削除するため ThisWorkBook 内に Workbook_AddinUninstall を作成します

Private Sub Workbook_AddinUninstall()

    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls("メニュー").Delete

End Sub

次に作成した VBA プロジェクトを保護します
この作業は自分専用として使うアドインであれば必要ありません

最後にファイルを保存します
通常の Excel ファイルとして保存し 配布用にアドインとして保存すると便利かも知れません
ファイルの種類から Microsoft Excel アドインを選択すると 保存先は自動的に AddIns フォルダになります

ここまでの作業でアドインは完成となります
アドインの名前は保存したファイル名の .xla を除いた部分の名前となりますので ファイル名もよく考えてつけましょう

続けて アドインを使えるようにするための登録 (インストール) を行います

メニューから [ツール][アドイン] を選択し アドインダイアログボックスを表示します
アドインの一覧内に登録するアドインが表示されていれば 対象アドインの左側にあるボックスをチェックすることで登録したことにな
りますが 対象のアドインが表示されていない場合には 参照ボタンをクリックして対象アドインの .xla ファイルを選択します

アドインを削除したい場合には チェックを外せば完了となります
また ファイルが削除されている場合には ここの一覧からも削除されます


アドインが正常に登録されていれば Excel のメニューに下図のように表示され アドインの機能を利用できるようになります