この関数について
ExcelVBA(マクロ)の開発をしていると参照設定の名称をコピペしたいという時があります。参照設定はブック単位で保存されるので、なにか自動化ツールを作成したときに参照設定を使用しており、誰かにそのExcelファイルを渡す場合、渡されたユーザーさんは参照設定の有無を気にせずマクロを使用できます。しかし、開発においては作成した関数によっては前提となる参照設定があり、その関数をモジュールごと別のブックへ移動させても参照設定は引き継がれないため、エラーが発生します。自分⇒自分の移動なら気を付ければなんとかなりますが、グループで開発する場合、これは深刻な問題です。そこで関数の冒頭にコメントで参照設定について記述をするわけですが、参照設定の文字列(名称や場所)はコピペができません。前置きが長くなりましたが、このページで紹介する関数を実行するとブックに設定されているすべての参照設定の名称を書き出すことができます。・・・しかし、当サイトの関数リファレンスで紹介している関数群は参照設定不要で使えるというコンセプトがあるため、この関数の出番がありません。
関数コピペ ~コードをクリックするだけでコピー完了!~
使い方 ①そのまま実行してもエラーになります
参照設定へのアクセスはセキュリティ設定の変更が必要です。そのまま呼び出しても上記のようなエラーとなります。
使い方 ②Excelのセキュリティ設定を変更する
「開発」>「コード」>「マクロのセキュリティ」>「開発者向けのマクロ設定」>「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する(V)」にチェックを入れてOKを押します。この変更はブックではなく、Excelの設定として保存されるため、他のブックを立ち上げても設定は継承されます。そのため必要がなくなったら、設定はもとに戻すことをお勧めします。※私は戻してません。
↓
使い方 ③引数
参照設定を取得したいブックを渡します。省略すると「Thisworkbook」が渡されたものとみなします。
使い方 ④戻り値
参照設定の名前(Discription)が格納された1次元配列を返します。Base:1
サンプルコード(クリックでコピー)
【結果】ブックに設定された参照設定を取得できました
冒頭の画像の参照設定がされたブックで実行した結果、上記の通り、参照設定の名称を取得できました。※結果を確認したら、Excelのセキュリティ設定は元に戻しましょう。
Comment