Excel 365 でアドインを作成
~ Book とプログラムを分けて管理 ~
2022-07-07 作成 福島
2022-09-06 更新 福島
TOP > tips > exceladdin

前置き

Microsoft Excel には VBA (Visual Basic for Applications) という Microsoft 独自の BASIC 言語が内蔵されていて、
このインタープリタを利用すると、セルを操作するプログラムを書くことができます。
(今回はサンプルとして、セルを操作しないプログラムを記述しています)

VBA の格納形態 (実行形態でもある) は下記の 2 種類で、それぞれに欠点があります。
  1. マクロ有効ブック プログラムをブックに保存する。 (ファイル名: Book1.xlsm)
    • ブックとプログラムを一緒にして管理するため、プログラムだけを別に管理することはできない。
    • 異なるブックを開くとプログラムも異なるため、一つのプログラムで異なるブックを操作できない。
      (変態的なテクニックを駆使すれば不可能ではないが、プログラムが汚くなりすぎる)

  2. アドイン プログラムとブックをそれぞれ別のファイルに保存する。 (ファイル名: Program.xlam, Book1.xlsx)
    • ブックを更新してもプログラムは変更されないが、設置と登録の手順が難解
    • 違うブックを開いても同じユーザプログラムを実行するにはアドインを登録する必要がある。
本稿は「2. アドイン」について作成、設置、登録 / 解除、削除する手順書です。
タイトルは「Excel 356」としていますが、「Excel 2019」でも同じ手順です。(文言や画面色が異なる場合があります)


本稿は下記の構成になっています。開発者は 0, 1 を、作業者は 0, 2 を実施してください。

  1. 開発者・作業者 共通手順 : アドインを有効にする手順。

    マイクロソフトによって勝手にアドインが制限されることがあるので、これを確認・解除します。
    アドインが突然動かなくなったら、ここを確認してください。

  2. 開発者用手順 : プログラムを記述・保存し、そのファイルを取り出すまでの手順。

  3. 作業者用手順 : プログラムを設置し、アイコンの登録 / 解除、プログラムを削除するまでの手順。

    アイコンの登録 / 解除 についてはそれぞれ A, B の 2 つがあります。どちらかを実施してください。
    1. リボン編 (2-2-A)
    2. クイック アクセス ツール バー編 (2-2-B)


0. 開発者・作業者 共通手順

0-1. トラストセンターでアドインを有効にする。
エクセルを起動し、オプションを選択する。
 ⇓
左ペインの「トラストセンター」を選択し、右ペインの ボタンをクリックする。
 ⇓
左ペインの「アドイン」を選択し、右ペインの
アドイン (COM,VSTO,その他) 」で、
すべてのアプリケーション アドインを無効にする (機能が使えなくなる場合があります)(D)
チェックを外して ボタンをクリックする。

 ⇓
設定を変更したら Excel を再起動 (終了→起動) させる。
0-2. 「信頼できる場所」にアドイン設置フォルダーを追加する。
        (マクロが実行できない場合)
上記設定 0-1. を行ってもアドインが実行できない場合があります。
その場合は、下記設定を実施してください。

特に 2022 年 3 月の WindowsUpdate 以降にこのメッセージが表示されるようになりました。
マクロ 'Book名!プロシージャ名' を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
(なぜか Office 2019 と Office 365 では挙動が異なります)


·「信頼できる場所」にアドインのフォルダーを追加する。
エクセルで「オプション」を開き、
左ペインの「トラストセンター」を選択後、
右ペインの ボタンをクリックする。
 ⇓
「トラスト センター」画面 (1)

左ペインの「信頼できる場所」を選択し、
右ペインの ボタンをクリックする。
 ⇓
「Microsoft Office の信頼できる場所」画面 (1)

「パス(P):」に、プログラムファイルを設置するフォルダーを指定し、 ボタンをクリックする。
環境変数「%APPDATA%」を含むフォルダー文字列を記入する。
(ここでは、下記アドイン作成要件である %APPDATA%\Microsoft\AddIns\ を指定している)
直接 ボタンをクリックしても、環境変数が展開されない。
 ⇓
「参照」画面

フォルダーの指定で環境変数が展開されていることを確認し、 ボタンをクリックする。
 ⇓
「Microsoft Office の信頼できる場所」画面 (2)

「パス(P):」に、展開されたフォルダーが「参照」画面から引き継がれていることを確認し、
ボタンをクリックする。
 ⇓
「トラスト センター」画面 (2)

「ユーザー指定の場所」リストに、アドイン設置フォルダーが追加された。
ボタンをクリックする。
 ⇓
設定を変更したら Excel を再起動 (終了→起動) させる。


1. 開発者用手順

1-0. アドイン作成要件
項番項目内容備考
1格納フォルダー%APPDATA%\Microsoft\AddIns\MS-Office の固定値。変更はできない。
(%APPDATA% は環境変数と呼び、C:\Users\ユーザー名\AppData\Roaming のように展開される)
2プログラムファイル名Program.xlam-
3プロシージャ名HelloAddIn
1-1. アドインプログラムの作成。
1-1-1. Excel を起動する。
なぜか、Excel 起動直後のメニューから VBE を起動することはできない。何らかのシートを開く必要がある。

ここでは「空白のブック」を開いた。
セルには用がないので、このブックは保存しない。
1-1-2. VBE を起動する。(VBE = Visual Basic Editor)
VBE の起動方法は 1 つではない。今回は + で起動した。
1-1-3. 標準モジュールを追加する。
VBE のメニューから「挿入(I)」-「標準モジュール(M)」を選択する。

1-1-4. プログラムを記述する。
追加した標準モジュールにプログラムを記述する。内容は以下。
Option Explicit

Public Sub HelloAddIn()
    MsgBox "Hello AddIn."
End Sub

  • ここでは HelloAddIn をアドインのプロシージャ名としている。(後述の登録時に参照される)
  • Option Explicit」「Public」は省略可能だが、カウボーイと揶揄されたくなければ忘れずに書くこと。
    (安全弁なので、変数を使ってなくても書く)
1-1-5. ファイルを保存する。
下記条件にして ボタンをクリックする。
ファイル名Program
ファイル形式

1-1-6. プログラム (アドイン) ファイルの確認。
エクスプローラで下記フォルダーを開き、
作成したファイルの存在を確認する。
%APPDATA%\Microsoft\AddIns\

1-1-7. Excel を終了する。
シートを開いたのは VBE を操作するのが目的だった。
Excel はもう使わないため閉じる。

  ⇓
今回は、開いたシートとは関係がないアドインを作成したので、ブックを保存する必要がない。

1-2. プログラムファイルの引き渡し。
作成したプログラムは上記 1-1-6 で確認した場所に保存されているので、このファイルをコピーし、作業者に渡す。
%APPDATA%\Microsoft\AddIns\Program.xlam


2. 作業者用手順

2-0. アドイン登録要件
項番項目内容備考
1格納フォルダー%APPDATA%\Microsoft\AddIns\MS-Office の固定値。変更はできない。
(%APPDATA% は環境変数と呼び、C:\Users\ユーザー名\AppData\Roaming のように展開される)
2プログラムファイル名Program.xlamアドインプログラムの配布条件に従う。
3プロシージャ名HelloAddIn
4アイコン
5リボンのタブ名アドイン
6リボンのグループ名テスト
2-1. アドインプログラムの設置と有効化
アドインプログラムを設置・有効化し、使用可能にする。

2-1-1. プログラムファイルを設置する。
作成されたアドイン (プログラムファイル) を、下記の場所に設置する。
%APPDATA%\Microsoft\AddIns\Program.xlam
2-1-2. エクセルを起動し、オプションを選択する。
今回作成したのはブックを使用しないアドインなので、起動画面から「オプション」を選択する。
(VBE は使わないので、シートを開かなくても操作可能)

2-1-3. アドインを有効化する。
左ペインの「アドイン」を選択し、右画面の ボタンをクリックする。

 ⇓
設置したプログラムのファイル名 (拡張子は省略) が表示される。
チェックボックスに印を入れ、 ボタンをクリックする。

2-1-4. エクセルのオプションを選択する。

 ⇓
左ペインの「アドイン」を選択し、右ペインの
「アクティブなアプリケーション アドイン」に、上記 2-1-3 で有効化したアドイン (のファイル名) があることを確認し、
ボタンをクリックする。


2-2. アイコンの登録 / 解除

Excel にアイコンを登録し、そのアイコンからアドインを起動できるようにする。

アイコンの登録 / 解除方法は 2 通りある。
ホントはもっとあるが、VBE の画面が必要だったり、セルにボタンを作成したりと、ハードルが高すぎるのでここでは除外している。
  1. リボン編 (登録:A-1 / 解除:A-2)
  2. クイック アクセス ツール バー編 (登録:B-1 / 解除:B-2)

2-2-A. アイコンの登録 / 解除 (リボン編)
リボンは多くのアドインを登録する場合に実施する。
(タイトルバーに登録したくない場合も実施)

リボンに直接アドインを登録することはできない。
必ずグループを作成し、そのグループにアドインを登録する。


2-2-A-1. アイコンの登録 (リボン)
2-2-A-1-1. エクセルのオプションを選択する。

2-2-A-1-2. グループの作成
Excel のオプション画面の左ペインで「リボンのユーザー設定」を選択後、「リボンのユーザ設定(B):」が になっていることを確認し、 ボタンをクリックする。

 ⇓
 新しいタブ (ユーザー設定)  新しいグループ (ユーザー設定)  が作成されたことを確認し、
 新しいグループ (ユーザー設定)  を選択する。
 新しいタブ (ユーザー設定)  は自動的に作られる。省略はできない。

2-2-A-1-3. プロシージャの登録。
「コマンドの選択(C):」で「マクロ」を選択すると、前段で有効化したアドインに入っているプロシージャ名 HelloAddIn が表示される。

このプロシージャ名 HelloAddIn を選択し、 ボタンをクリックする。

 ⇓
「新しいグループ ユーザー設定」にプロシージャ HelloAddIn (のアイコン) が登録された。 ボタンをクリックする。

2-2-A-1-4. タブ名の変更
Excel のオプションを選択する。
 ⇓
前段で自動的に作られた
「新しいタブ (ユーザー設定)」を選択し、
ボタンをクリックする。
 ⇓
タブ名を記入して ボタンをクリックする。
上記アドイン登録要件 (2-0) に従い、「アドイン」を記入している。
2-2-A-1-5. グループ名の変更
前段で作られた
「新しいグループ (ユーザー設定)」を選択し、
ボタンをクリックする。

 ⇓
グループ名を記入して ボタンをクリックする。
上記アドイン登録要件 (2-0) に従い、「テスト」を記入している。
2-2-A-1-6. タブ名、グループ名の確認。
タブ名とグループ名が変更されていることを確認して ボタンをクリックする。
2-2-A-1-7. リボンからアドインを実行。
リボンに表示されている「アドイン」を選択すると、グループ「テスト」が表示される。

中にあるプロシージャ名「HelloAddIn」をクリックするとアドインが実行される。

2-2-A-2. アイコンの解除 (リボン)
Excel のオプションを選択する。
 ⇓
左ペインの「リボンのユーザー設定」を選択し、右ペインの「リボンのユーザー設定(B):」で を選択すると、登録したタブ名表示される。

タブ名、グループ名を展開すると、登録したプロシージャ名  HelloAddIn  が表示される。

プロシージャ名  HelloAddIn  を選択し、 ボタンをクリックする。
 ⇓
グループ名を選択し、 ボタンをクリックすると、グループの削除が可能。

配下にプロシージャが登録されている場合は、プロシージャごと解除される。
 ⇓
タブ名を選択し、 ボタンをクリックすると、タブの削除が可能。

配下にグループやプロシージャが登録されている場合は、グループ・プロシージャごと解除される。
 ⇓
ここでは、タブ、グループ、プロシージャすべてをリストから削除した。

ボタンをクリックして削除を確定する。
ボタンをクリックすると、削除されない。
 ⇓
リボンからタブが解除された。

2-2-B. アイコンの登録 / 解除 (クイック アクセス ツール バー編)
頻繁に使用するアドインを登録する場合に実施する。

クイック アクセス ツール バー にアドインを登録すると、
リボンより少ない手間でアドインを実行できるが、場所が狭いため多くは登録できない。


2-2-B-1. アイコンの登録 (クイック アクセス ツール バー)
2-2-B-1-1. エクセルのオプションを選択する。

2-2-B-1-2. クイック アクセス ツール バーへの登録
左ペインの「クイック アクセス ツール バー」を選択後、右ペインの「クイック アクセス ツール バーのユーザー設定(O):」が であることを確認する。
 ⇓
「コマンドの選択(C):」で を選択すると、登録したアドインのプロシージャ名が表示される。
このプロシージャ名を選択し、 ボタンをクリックする。
 ⇓
クイック アクセス ツール バーにアドインのプロシージャ名 HelloAddIn が登録された。
ボタンをクリックする。
 ⇓
クイック アクセス ツール バーに HelloAddIn のアイコンが表示された。
2-2-B-1-3. クイック アクセス ツール バーのアイコンを変更する。
Excel のオプションを選択する。
 ⇓
左ペインの「クイック アクセス ツール バー」を選択し、右ペインに表示されている「クイック アクセス ツール バーのユーザー設定(O):」が になっていることと、その下に前段で追加したプロシージャ名 HelloAddIn があることを確認する。

この HelloAddIn を選択し、 ボタンをクリックする。
 ⇓
タイトルバーに「ボタンの変更」と表示されているが、ここで変更できるのはアイコンであり、ボタンではない。

アイコンを選択し、 ボタンをクリックする。上記アドイン登録要件 (2-0) に従い、 を選択している。

クイック アクセス ツール バーはモノクローム表示なので、ここで色を選んでも無意味。
 ⇓
アイコンが変更された。
ボタンをクリックする。
 ⇓
クイック アクセス ツール バーに登録したアドインのアイコンが変更された。

2-2-B-2. アイコンの解除 (クイック アクセス ツール バー)
Excel のオプションを選択する。
 ⇓
左ペインの「クイック アクセス ツール バー」を選択し、右ペインの「クイック アクセス ツール バーのユーザー設定(O):」で を選択すると、登録したプロシージャ名が表示される。

プロシージャ名「 HelloAddIn」を選択し、 ボタンをクリックする。
 ⇓
プロシージャがリストから削除された。

ボタンをクリックして削除を確定する。
ボタンをクリックすると、削除されない。
 ⇓
クイック アクセス ツール バーからプロシージャが解除された。


2-3. アドインプログラムの削除

予めアイコンの解除 (上記 2-2-A-2 / 2-2-B-2) を実施しておくこと。

2-3-1. 不要になったアドインプログラムを削除する。
アドインプログラムの格納フォルダーをエクスプローラーで開き、
該当ファイル (Program.xlam) を削除する。
%APPDATA%\Microsoft\AddIns\
2-3-2. Excel を再起動する。
Excel を再起動 (終了→起動) させる。

再起動させないと、削除したはずのアドインファイルが表示されたり、
設置したアドインファイルが反映されないままになる。