検索
連載

【Excel】作成したマクロをアドインにしてクリック一発で実行可能にするTech TIPS

Excelでよく利用するマクロは、アドイン化して自分専用のリボンに登録しておくと、クリック一発で実行できて便利だ。マクロのアドイン化は少々手間がかかるが、1回だけの作業なので手順通りに行えばよい。その手順を紹介しよう。

Share
Tweet
LINE
Hatena
「Tech TIPS」のインデックス

連載目次

対象:Office 2013/2016/2019/365


マクロをアドインにすればリボンに登録可能
マクロをアドインにすればリボンに登録可能
マクロをアドインとして登録すると、いつでも利用できるようになり、リボンにマクロを実行するボタンを置いてExcelの機能を拡張できるようになる。例えば、選択したセルに「太字」と「縦中央合わせ」、「横中央揃え」を同時に設定することができる。

 「Microsoft Excel(エクセル)」のマクロは、通常のブックに保存できない。そのため、いつでも利用するためには、アドインを作り、これをExcelの起動時に読み込むようにする必要がある。カスタマイズしたリボン用にマクロを作ったりすれば、複数の機能を同時に設定するようなボタンを置くこともできる。ここでは、リボン用のマクロを作る場合などに必要となるアドインの作り方を解説する。

まずはマクロを作る

 アドインは、マクロのみを含む特殊なExcelのファイルで、通常のブックとは違って、指定フォルダに保存しておくことで、Excelの起動時に自動的に読み込むことが可能になる。これで、マクロを含むことができない通常のブックを開いても、自作のマクロをいつでも利用することが可能になる。

 マクロを作るためにはVisual Basic Editor(VBE)が必要になるため、事前に[開発]タブを表示しておくとよい。それには、Tech TIPS「Excel自動化への第一歩 マクロ(VBA)を使えるようにする」を参考に準備してほしい。

 まず、空白のブックを開き、[開発]タブ−[Visual Basic]アイコンをクリックしてVBEを開く。既にマクロを含むブック(マクロ有効ブック「.xlsm」)があるならそれを開き、後述のアドイン作成の作業を行えばよい。

 空白のブックを開いた場合には、VBEでマクロを登録する。ここでは、リボンに配置することを考慮した「太字にしてセンタリング」するマクロをサンプルとして使う。そのリストを以下に記す。

Sub BoldCenter()
    Selection.Font.Bold = True
    Selection.HorizontalAlignment = xlCenter
    Selection.VerticalAlignment = xlCenter
End Sub

「太字にしてセンタリング」するマクロ

 VBEを開き、メニューの[挿入]−[標準モジュール]を選択して、ブックに標準モジュールを作成する。VBE左上のツリーに「標準モジュール」ができ、その下に「Module 1」が登録される。これが選択された状態で、右ペインのコードウィンドウに上記のリストを貼り付ける。これで空のブックにマクロが作られた。

マクロを作成する(1)
マクロを作成する(1)
マクロを登録するには[開発]タブで[Visual Basic]アイコンをクリックし、VBEウィンドウを開く。
マクロを作成する(2)
マクロを作成する(2)
VBEウィンドウの[挿入]メニューで[標準モジュール]を選択する。
マクロを作成する(3)
マクロを作成する(3)
右側のコードウィンドウにマクロのリストを貼り付ける。

マクロからアドインを作る

 次にアドインを作成しよう。Excelのウィンドウに戻って[ファイル]タブを選択し、[名前を付けて保存]で、[ファイルの種類]として「Excelアドイン(*.xlam)」を選択する。

マクロをアドイン化する
マクロをアドイン化する
Excelの[ファイル]タブに移動し、[名前を付けて保存]−[参照]とクリックして[名前を付けて保存]ダイアログの[ファイルの種類]で[Excelアドイン]を選択する。保存先が自動的に切り替わるので、これを変えずにファイル名を付ける。ファイル名はアドインの名前になるので、分かりやすいものにする。この記事では例として「Shioda」とした。

 すると保存先が自動的に自分のユーザーフォルダ以下に切り替わる。具体的には、以下のフォルダに変更される。

%userprofile%\AppData\Roaming\Microsoft\AddIns\


アドインを保存するフォルダ
%userprofile%は、自分のユーザーフォルダ(C:\Users\以下のフォルダ)に置き換えられる環境変数。実際には、この「%userprofile%」ではなく、自分のユーザーフォルダの絶対パスが使われる。

 後で行う設定に必要なので、自分のアドインの保存場所を覚えておく。また、このアドインの保存先を変更してはいけない。

 ファイル名には、分かりやすい名前を付ける。ただし、アドインはブックなどとは別に扱われるため「Add-In」などという用語は不要である。筆者はこういう場合、Excelなどのアプリケーションが標準では絶対作ることがないファイル名として、自分の名前などを使う。ここでは仮に「shioda」(shioda.xlam)としておく。

 アドインを保存した後、マクロを作成したブック自体は不要なので、消してしまってもよいが、何かあったときのためにブックとして保存する場合には「マクロ有効ブック(.xlsm)」として保存する必要がある。

マクロにデジタル署名を付ける

 自分で作成したマクロは、「電子署名」(Excelでは「デジタル署名」と呼ぶ)を付けることで、作者をはっきりとさせ、マクロ実行などに制限をかけた場合でも実行させることができる。

 電子署名には、公的な証明機関から認証を受けた「電子証明書」(デジタル証明書とも呼ばれる。以下、「証明書」)を使うものと、自分で作成した証明書(自己発行証明書)を使うものがある。自分だけで使うマクロならば、自分が作成した証明書による電子署名があれば十分だ。Officeには、自分で証明書を作る機能と、マクロに電子署名を付ける機能がある。

自分用の証明書を作成する

 そこで、自分用の証明書を作成しよう。Officeのインストールディレクトリに、SELFCERT.EXEというプログラムがある。これは、[スタート]メニューなどには登録されていないが、Excel.exeと同じフォルダにある。Excel.exeがあるフォルダは、タスクマネージャーの[プロセス]タブで「Microsoft Excel」を右クリックして[ファイルの場所を開く]を選ぶと、エクスプローラーで簡単に開ける。

 SELFCERT.EXEを起動すると[デジタル証明書の作成]というウィンドウが開くので「証明書の名前」欄に自分の名前など、確認時に自分が作った証明書だと確実に判断できる名前を入力する。この名前は、確認時に表示されるので、ここで「証明書」のような何の証明書なのか分かりにくい名前を付けてしまうと、悪意のあるプログラムが勝手に付けている証明書なのか、自分が作った証明書なのかが判別できなくなってしまうからだ。基本的には自分の名前を入れればいいだろう。

自分用の証明書を作成する
自分用の証明書を作成する
初めてアドインを作成する場合には、SELFCERT.EXEで自分の電子証明書を作る。自分が作ったことが確実に分かる名前を証明書には付けておく。

 上記の作業は1回だけ実行すればよい。作成した証明書は、複数のアドインの電子署名に利用できるからだ。

アドインに電子署名を付ける

 証明書を作ったら、VBEに戻り、保存したアドインに対応するプロジェクトを選択してから、[ツール]メニューの[デジタル署名]をクリックし、先ほど作成した証明書を選択する。その後、VBEのファイルメニューからアドインのプロジェクト(Shioda.xlam)を上書き保存する。これで、アドインにデジタル署名が付けられた。

アドインに電子署名を付ける(1)
アドインに電子署名を付ける(1)
証明書を作ったら、VBEでアドインに「デジタル署名」を付ける。[ツール]メニューから[デジタル署名]を選択する。
アドインに電子署名を付ける(2)
アドインに電子署名を付ける(2)
[デジタル署名]ダイアログが開くので、先ほど作成した証明書を選択する。
アドインに電子署名を付ける(3)
アドインに電子署名を付ける(3)
自分で作成した証明書であることを確認して[OK]ボタンをクリックする。
アドインに電子署名を付ける(4)
アドインに電子署名を付ける(4)
作成した証明書によって、アドインに電子署名が付けられた。

トラストセンターの設定を変更する

 Excelでは、ユーザーが知らない間にマクロが実行されてしまうことを避けるため、マクロを含むアドインが組み込まれたときに警告を表示する機能がある。自分で電子署名をしたマクロについては、その警告が出ないように設定しよう。

デジタル署名されたマクロのみを実行可能にする

 Excelの[開発]タブの[コード]グループにある[マクロのセキュリティ]をクリックして、[トラストセンター]ダイアログを表示させる。[トラストセンター]ダイアログの左ペインで[マクロの設定]を選択して、「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選択する。

 次に左ペインの[アドイン]を選択して、「アプリケーションアドインに対し、信頼できる発行元の署名を必須にする」のチェックだけが「オン」になっていることを確認しよう。もし、この項目のチェックが「オフ」ならば「オン」にしておく。

トラストセンターの設定を変更する(1)
トラストセンターの設定を変更する(1)
アドインにデジタル署名を付けたら、[開発]タブの[マクロのセキュリティ]で[トラストセンター]を起動する。
トラストセンターの設定を変更する(2)
トラストセンターの設定を変更する(2)
[トラストセンター]ダイアログの左ペインで[マクロの設定]を選択し、右ペインで「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選ぶ。
トラストセンターの設定を変更する(3)
トラストセンターの設定を変更する(3)
[トラストセンター]ダイアログの左ペインで[アドイン]を選択する。ここでは、「アプリケーションアドインに対し、信頼できる発行元の署名を必須にする」をチェックする。

アドインの保存先を信頼できる場所に追加する

 引き続きトラストセンターで、左ペインの[信頼できる場所]を選択して、[新しい場所の追加]ボタンをクリックする。[Microsoft Officeの信頼できる場所]ダイアログが開くので、先ほどの自分のアドイン保存先フォルダ(ユーザーフォルダ下の「AppData\Roaming\Microsoft\AddIns\」)を指定する。[参照]ボタンで、エクスプローラーを起動してフォルダを指定することもできる(ただし、事前にエクスプローラーの[表示]タブ−[表示/非表示]グループ−[隠しファイル]にチェックを入れておくこと)。また、自分が設定したことを忘れないように「説明」欄にも何かメモしておくとよい。

アドインの保存先を信頼できる場所に追加する(1)
アドインの保存先を信頼できる場所に追加する(1)
[トラストセンター]ダイアログの[信頼できる場所]でアドインの保存先を登録する。[新しい場所の追加]ボタンを押す。
アドインの保存先を信頼できる場所に追加する(2)
アドインの保存先を信頼できる場所に追加する(2)
アドインの保存先を登録する。自分が設定したことを忘れないように「説明」欄にも何かメモしておくとよい。
アドインの保存先を信頼できる場所に追加する(3)
アドインの保存先を信頼できる場所に追加する(3)
信頼できる場所にアドインを保存したパスが追加された。

 これでアドインの保存先が、信頼できる場所としてExcelに扱われるようになった。以後、インターネットからダウンロードしてきたような出どころ不明で信頼できないアドインを、このフォルダに保存しないように注意しよう。

アドイン読み込みの設定をする

 ここでExcelを終了させて再起動し、空白のブックを開く。これでExcelにはマクロもアドインも入っていない状態になる。[開発]タブにある[Excelアドイン]をクリックする。[アドイン]ダイアログが開き、そこに先ほど保存したアドインが表示されているはずだ。その行頭にあるチェックを「オン」にする。これで、アドインが読み込まれ、かつ、次回からExcelの起動時にアドインが自動的に読み込まれるようになる。

アドイン読み込みの設定をする
アドイン読み込みの設定をする
[開発]タブの[Excelアドイン]をクリックし、[アドイン]ダイアログで保存したアドイン(例ではShioda)の行頭のチェックを「オン」にして[OK]ボタンで閉じる。

マクロの追加はアドインファイルに直接保存可能

 以後は、常に登録したアドインが読み込まれている状態になるため、マクロを追加するような場合には、単にVBEを開いて、自分のアドインの標準モジュールを編集すればよい。ここにマクロを追加した後、アドインのプロジェクトを選択して、VBEの[ファイル]メニューから「shioda.xlamの上書き保存」をクリックすれば、アドインが更新される。

マクロの追加はアドインファイルに直接保存可能
マクロの追加はアドインファイルに直接保存可能
アドインが指定されると、VBEでは常にアドインに対応するVBAProjectが表示されるようになる。マクロを追加したい場合などは、ここで作業した後に、[ファイル]メニューの[〜の上書き保存]を選択すれば、アドインが更新される。

Excelに自分の証明書を信頼させる

 ただし、これでもアドインを組み込んで最初の起動のときには、警告が表示されることがある。これは、SELFCERT.EXEで作成した証明書がまだ、EXCELによって「信頼されている証明書」と認識されていないからだ。このとき、数式バーの下などに警告が表示される。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る