【Excel VBA】アドインを作成する

当ページのリンクには広告が含まれている可能性があります。
アドイン作成

こんにちは。ユーキです。

今日は、アドインの作り方を紹介します。

目次

アドインとは

マクロはExcelブックとセットのプログラムですが、アドインはブックとは切り離されたプログラムです。
そのため、マクロを入れたくないExcelファイルでも、このアドインを使えばVBAの処理を実行することが可能です。

まずはさくっとアドインを作って、便利さを実感してみましょう。

アドインの作成

処理を記述は、これまと同じです。

Excel VBAで始めるプログラミング入門 を参考にして、まずは処理部分を記述します。

Public Sub Hello()
    MsgBox "Hello", vbInformation
End Sub

今回は、「Hello」とメッセージが表示される処理を書きました。

実行はメニューバーにボタンを追加して処理を実行できるようにします。
今回は、「テスト」というボタンを追加します。コードは以下のようになります。

これはアドインをインストールする際に実行される処理となります。

Private Sub Workbook_AddinInstall()
    Dim menuBar As CommandBar
    Dim menuBtn As CommandBarButton
    
    Set menuBar = Application.CommandBars("Worksheet Menu Bar")
    
    Set menuBtn = menuBar.Controls.Add(Type:=msoControlButton)
    menuBtn.Style = msoButtonCaption
    menuBtn.Caption = "テスト"
    '作成したメソッド名を記述
    menuBtn.OnAction = "Hello"
    
End Sub

追加する場所はThisWorkbookに記述をしましょう。

アドイン追加位置

また、アドインをアンインストールした際にメニューバーからメニューを削除する処理も入れておきます。

Private Sub Workbook_AddinUninstall()
    Dim menuBar As CommandBar
    
    Set menuBar = Application.CommandBars("Worksheet Menu Bar")
    menuBar.Controls("テスト").Delete
End Sub

このBookをアドインとして保存しましょう。

作成したアドインの保存

アドインとして保存する場合、「Excel アドイン(*.xlam)」を選択します。

Excel アドインの保存

「Excel アドイン(*.xlam)」を選択すると、保存先は「C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\AddIns」に切り替わりますが、自分が覚えやすい好きな場所で問題ありません。

ファイル名は、アドインを設定するときのアドイン名になるため、どういう機能がわかりやすい名前にしておきましょう。

今回は、「自作アドイン.xlam」というファイル名で保存をします。

作成したアドインの設定

では、作成したアドインを設定してみましょう。

まずは、Excelを起動します。新規ブックでも、既存ファイルでもOKです。

「ファイル」メニュー → 「オプション」→ 「アドイン」→ 「設定」ボタンでもよいですが、リボン「開発」タブからも選択が可能です。
開発タブの表示の仕方は、【EXCEL VBA】開発前にやっておくべき設定(開発準備編) を参照ください。

開発タブのアドイン
開発タブのアドイン

次のような設定画面が表示されますので、参照ボタンを押下して、作成したアドインを設定しましょう。

アドイン選択画面

ファイルを選択すると、以下のように表示され、チェックが付きます。OKボタンを押下すると、インストール完了です。このアドインをアンインストールしたい場合、チェックを外せばアンインストールできます。

アドイン設定後

インストールが完了すると、リボンに「アドイン」というタブが追加され、そこに「テスト」ボタンが追加されます。

アドイン追加後のリボン

動かしてみる

テストボタンを押下して、実行してみましょう。

アドイン実行結果

最初に書いた処理が無事に動いて、メッセージボックスが表示されました。

最後に

アドインの設定は各ブックではなく、Excelに対する設定となります。そのため、一度設定をすると、アンインストールするまでアドインは機能しつづけます。

マクロを仕込めないExcelファイルにでも使用できるうえ、いちいちファイル単位にアドインを読み込む必要もないので、日時別ごとにある集計ファイルなど同一フォーマットでの処理をさせたい場合に便利な機能となります。

今回は、メニューバーにボタンを追加しましたが、コンテキストメニューに追加をしたり、自作ショートカットを作成できたりとやれることの幅は広いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次