こんにちは。ユーキです。
今日は、アドインの作り方を紹介します。
アドインとは
マクロは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 アドイン(*.xlam)」を選択すると、保存先は「C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\AddIns」に切り替わりますが、自分が覚えやすい好きな場所で問題ありません。
ファイル名は、アドインを設定するときのアドイン名になるため、どういう機能がわかりやすい名前にしておきましょう。
今回は、「自作アドイン.xlam」というファイル名で保存をします。
作成したアドインの設定
では、作成したアドインを設定してみましょう。
まずは、Excelを起動します。新規ブックでも、既存ファイルでもOKです。
「ファイル」メニュー → 「オプション」→ 「アドイン」→ 「設定」ボタンでもよいですが、リボン「開発」タブからも選択が可能です。
開発タブの表示の仕方は、【EXCEL VBA】開発前にやっておくべき設定(開発準備編) を参照ください。
次のような設定画面が表示されますので、参照ボタンを押下して、作成したアドインを設定しましょう。
ファイルを選択すると、以下のように表示され、チェックが付きます。OKボタンを押下すると、インストール完了です。このアドインをアンインストールしたい場合、チェックを外せばアンインストールできます。
インストールが完了すると、リボンに「アドイン」というタブが追加され、そこに「テスト」ボタンが追加されます。
動かしてみる
テストボタンを押下して、実行してみましょう。
最初に書いた処理が無事に動いて、メッセージボックスが表示されました。
最後に
アドインの設定は各ブックではなく、Excelに対する設定となります。そのため、一度設定をすると、アンインストールするまでアドインは機能しつづけます。
マクロを仕込めないExcelファイルにでも使用できるうえ、いちいちファイル単位にアドインを読み込む必要もないので、日時別ごとにある集計ファイルなど同一フォーマットでの処理をさせたい場合に便利な機能となります。
今回は、メニューバーにボタンを追加しましたが、コンテキストメニューに追加をしたり、自作ショートカットを作成できたりとやれることの幅は広いです。