Windows TIPS
[Office Master]
  Windows TIPS TOPへ
Windows TIPS全リストへ

Excelでユーザー定義関数をアドインとして提供する

解説をスキップして操作方法を読む

山田 祥寛
2004/09/04
 
対象ソフトウェア
Excel 2000
Excel 2002
Excel 2003
ユーザー定義関数を有効化するために、個々のブックでインポート作業を行うのは面倒である。
標準モジュールを「アドイン」化して特定のフォルダ上で管理することにより、簡単にユーザー定義関数の有効/無効を切り替えられる。
 
解説

 Windows TIPS「ユーザー定義関数をエクスポート/インポートする」で紹介したように、モジュールファイル(「.bas」ファイル)をエクスポート/インポートすることで、必要なユーザー定義関数を必要なブックでのみ有効にすることができる。だがWindows TIPS「Excelでユーザー定義のワークシート関数を追加する」のように、すべてのブックでユーザー定義関数を有効にしたくないとはいえ、このように個々のブックでモジュールをインポートしなければならないのは面倒である。

 そこで本TIPSでは、標準モジュールをアドイン・ファイル(「.xla」ファイル)として保存する方法を紹介する。アドインとは、Excelの機能を拡張するための一種のプラグインである。Excelには、あらかじめ「自動保存」や「ソルバー」「分析ツール」などのアドインが用意されているが、用意されているアドインを利用するだけでなく、自分でアドインを開発することもできる。

 アドインはあらかじめアドイン用フォルダ(デフォルトでは「C:\Documents and Settings\<ユーザ名>\Application Data\Microsoft\AddIns」)に保存しておくことで、同一PC上からであれば、簡単に組み込み/取り外しを行うことができる。

 それではさっそく、一連の手順を見てみることにしよう。なおアドイン化の対象となるサンプル・コードは、Windows TIPS「Excelでユーザー定義のワークシート関数を追加する」で紹介したSubStringAfter関数をそのまま利用するので、詳細はそちらを参照していただきたい。


操作方法

手順1―標準モジュールをアドイン化する

 SubStringAfter関数を定義した標準モジュールを含むブック(テンプレート)を呼び出し、メニューから[ファイル]−[名前を付けて保存]を選択する。[ファイル名を付けて保存]ダイアログが表示されるので、[ファイルの種類]として[Microsoft Excel アドイン(*.xla)]を選択し、[ファイル名]を「myAddin.xla」として保存する。アドイン・ファイルは任意のフォルダに保存することができるが、あらかじめ決められた[AddIns]フォルダに保存することで、自動的にアドインとして登録される。特別な理由がない限り、[AddIns]フォルダに保存しておくのが望ましい。

関数の保存
関数をアドイン・フォルダに保存する。
  AddInsフォルダへ保存する。

手順2―アドインを有効化する

 アドインを有効化する方法は簡単だ。メニューから[ツール]−[アドイン]を選択すると、[アドイン]ダイアログが表示される。手順1で「.xla」ファイルをAddInsフォルダに保存した場合には、保存したアドインがデフォルトで[アドイン]欄にリスト表示されるので、「MyAddin」のチェックをオンにするだけでよい。だがリストに表示されない場合は、[参照]ボタンをクリックして、手動でアドインをリストに追加する。

[アドイン]ダイアログ
アドインを有効化するには、各アドインのチェック・ボックスをオンにする。
  チェック・ボックスをオンにしたアドインが有効になる。

 アドインが不要になった場合は、アドイン・リストのチェックをオフにするだけでよい。

 以上でアドインの組み込みは完了だ。先のTIPSの手順に従って、ユーザー定義関数の挙動を確認しておこう。

アドインのパスワード保護

  ところで標準モジュールをアドイン化した場合、「.xla」ファイルを不特定多数の第三者に配布するようなケースもあるだろう。配布されたコードをユーザーが不用意に改変すると、ユーザー定義関数が正しく動作しなくなる恐れがある。またアドイン・ファイルを有償で提供するようなケースなどでは、そもそもユーザーに生のコードを見せたくないということもあるだろう。そのような場合には、あらかじめアドインに参照パスワードを設定しておくとよい。

 参照パスワードを設定したい場合には、Visual Basic Editorから行うことができる。手順1で作成したアドイン・ファイル(「.xla」ファイル)を開き、プロジェクト・エクスプローラ上のツリーから[VBAProject(ファイル名)]を右クリックする。表示されたコンテキスト・メニューから[VBAProjectのプロパティ]を選択すると、[VBAProject - プロジェクト プロパティ]ダイアログが開くので、[保護]タブを選択する。

[VBAProject - プロジェクトプロパティ]ダイアログ
プロジェクトにパスワードを設定すると、内容を保護することができる。
  このチェック・ボックスをオンにし、パスワードを指定すると、内容を保護することができる。
  ロック用のパスワード。空にすることはできない。

 [プロジェクトを表示用にロックする]のチェック・ボックスをオンにし、参照用のパスワードを設定するだけだ。アドインを上書き保存し、再度、任意のブックからVisual Basic Editorを開いてみよう。[VBAProject(myAddin.xla)]ダイアログを選択すると、次のようなダイアログが表示されるはずだ。ここで、正しいパスワードを入力しない限り、プロジェクト内のプロパティやコードを参照/変更することはできない。End of Article

[VBAProject パスワード]ダイアログ
プロジェクトのコードを参照しようとすると、このようなダイアログが表示され、パスワードを入力しないと開くことができない。

  • サンプル・ファイルmyAddin.xlaのダウンロード
    :今回のサンプル・ファイルをダウンロードするには、上のリンクを右クリックして、myAddin.xlaというファイル名で保存すること)

関連記事
  Windows TIPS:ユーザー定義関数をエクスポート/インポートする(Windows Server Insider)
  Windows TIPS:Excelでユーザー定義のワークシート関数を追加する(Windows Server Insider)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間