ユーザー定義関数を使う(アドイン)
Q.前回ご質問させて頂きました、ある日付が休日かどうかを判定するのにIsNonWorkDay関数を便利に使っているのですが、いろんなファイルにこの関数を登録するのが面倒だし、最近、休日判定の部分のプログラム(コード)を足したいと思っているのですが、今まで登録した全てのファイルを直さないといけないと思うと憂鬱です。どこか1箇所で管理できないのでしょうか?
A.使用上の不便に対して、良い改善点に気づきましたね。このような場合は、Excelでは「アドイン」という仕組みを使います。
前回のご質問でお答えしたとおり、Excelでは、VBAのFunctionを、Excelのワークシートで使うことができます。これをワークシート関数に対して、「ユーザー定義関数」と呼んだりします。
※以前の記事は下記のリンクからご確認頂けます。
http://www.office-kaiketsu.com/excel%ef%bc%88%e3%82%a8%e3%82%af%e3%82%bb%e3%83%ab%ef%bc%89/%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e5%ae%9a%e7%be%a9%e9%96%a2%e6%95%b0%e3%82%92%e4%bd%bf%e3%81%86/
ここで作成したユーザー定義関数「IsNonWorkDay」を、いろんなワークブックで使いたいと言うことですね。いろんなワークブックというより、自分のパソコンで開く全てのワークブックで使えるようにする、これがアドインです。
さて、それでは実際の手順を追って説明しましょう。
まず、新しいワークブックを開き、前回用意した、InNonWorkDay関数を標準モジュールにコーディングして下さい。(ちゃんと動作確認はして下さいね)
その後は、下記の手順でアドインとして保存します。
1.「ファイル」タブの「名前を付けて保存」をクリック
2.「コンピュータ」の「参照」をクリック
3.「名前を付けて保存」のダイアログが開くので、「ファイルの種類」から「Excelアドイン」を選択
※この時点で、保存フォルダが自動的に「AddIn」フォルダに変わります。これがアドインの保存されるフォルダです。
4.「ファイル名」はお好きな(分かりやすいもの)ものとして、保存します。
この時点で、アドインファイルが作成されましたから、これを組み込みします。
1.「ファイル」タブの「オプション」をクリック
2.「Excelのオプション」ダイアログで左側の「アドイン」をクリック
3.「設定」をクリック
4.「アドイン」ダイアログで先ほど保存したアドインファイルの名前にチェックして「OK」で決定
これで、これから開くブックすべてで「IsNonWorkDay」関数が使えるようになります。
もちろん、他のユーザー定義関数でも同様のやり方が使えますから、お気に入りの自分だけの関数をアドイン登録すると便利に使えますね。
このようにアドインのユーザー定義関数を使うことで、いろんなファイルで、すぐに自分の用途に合ったユーザー定義関数が使えるというメリットがあります。ただし、逆のデメリットとしては、自分で作ったユーザー定義関数入りのアドインが、他の人のパソコンにない場合、これまで説明した手順でアドインを渡して追加してもらうか、ブックの標準モジュールで定義しなおさないと使えなくなります。
その点を踏まえて、状況に応じて便利に使っていきましょう。