前置き
Microsoft Excel には VBA (Visual Basic for Applications) という Microsoft 独自の BASIC 言語が内蔵されていて、
このインタープリタを利用すると、セルを操作するプログラムを書くことができます。
(今回はサンプルとして、セルを操作しないプログラムを記述しています)
VBA の格納形態 (実行形態でもある) は下記の 2 種類で、それぞれに欠点があります。
本稿は「2. アドイン」について作成、設置、登録 / 解除、削除する手順書です。
- マクロ有効ブック ‐ プログラムをブックに保存する。 (ファイル名: Book1.xlsm)
- ブックとプログラムを一緒にして管理するため、プログラムだけを別に管理することはできない。
- 異なるブックを開くとプログラムも異なるため、一つのプログラムで異なるブックを操作できない。
(変態的なテクニックを駆使すれば不可能ではないが、プログラムが汚くなりすぎる)
- アドイン ‐ プログラムとブックをそれぞれ別のファイルに保存する。 (ファイル名: Program.xlam, Book1.xlsx)
- ブックを更新してもプログラムは変更されないが、設置と登録の手順が難解。
- 違うブックを開いても同じユーザプログラムを実行するにはアドインを登録する必要がある。
タイトルは「Excel 365」としていますが、「Excel 2019」でも同じ手順です。(文言や画面色が異なる場合があります)
本稿は下記の構成になっています。開発者は 0, 1 を、作業者は 0, 2 を実施してください。
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-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. ファイルを保存する。
下記条件にして ボタンをクリックする。1-1-6. プログラム (アドイン) ファイルの確認。
ファイル名 Program ファイル形式
エクスプローラで下記フォルダーを開き、
作成したファイルの存在を確認する。
%APPDATA%\Microsoft\AddIns\
1-1-7. Excel を終了する。
シートを開いたのは VBE を操作するのが目的だった。1-2. プログラムファイルの引き渡し。
Excel はもう使わないため閉じる。
⇓
今回は、開いたシートとは関係がないアドインを作成したので、ブックを保存する必要がない。
作成したプログラムは上記 1-1-6 で確認した場所に保存されているので、このファイルをコピーし、作業者に渡す。
%APPDATA%\Microsoft\AddIns\Program.xlam
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. プログラムファイルを設置する。
作成されたアドイン (プログラムファイル) を、下記の場所に設置する。2-1-2. エクセルを起動し、オプションを選択する。
%APPDATA%\Microsoft\AddIns\Program.xlam
今回作成したのはブックを使用しないアドインなので、起動画面から「オプション」を選択する。
(VBE は使わないので、シートを開かなくても操作可能)
2-1-3. アドインを有効化する。
左ペインの「アドイン」を選択し、右画面の ボタンをクリックする。
⇓
設置したプログラムのファイル名 (拡張子は省略) が表示される。
チェックボックスに印を入れ、 ボタンをクリックする。
2-1-4. エクセルのオプションを選択する。
⇓
左ペインの「アドイン」を選択し、右ペインの
「アクティブなアプリケーション アドイン」に、上記 2-1-3 で有効化したアドイン (のファイル名) があることを確認し、
ボタンをクリックする。
Excel にアイコンを登録し、そのアイコンからアドインを起動できるようにする。
アイコンの登録 / 解除方法は 2 通りある。
ホントはもっとあるが、VBE の画面が必要だったり、セルにボタンを作成したりと、ハードルが高すぎるのでここでは除外している。
A, B どちらか一方を実施する。(両方でも構わないが、かなり面倒)
- リボン編 (登録:A-1 / 解除:A-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) に従い、● を選択している。
クイック アクセス ツール バーはモノクローム表示なので、ここで色を選んでも無意味。
⇓
アイコンが変更された。
ボタンをクリックする。
⇓
クイック アクセス ツール バーに登録したアドインのアイコンが変更された。