|
はじめまして。ふぇんと申します。
職場で上司より、以下の仕様のExcel VBAを作成するように指示がきたのですが、
2日間、本屋で調べ、ネットで調べても、なかなか出てこないので、質問させて
いただきました。
<仕様>
1.プログラムの保守性を高めるため、Excelファイルにはソースを保存しない。
2.Excelファイルには、ボタンのフォームだけを作成し、データをExcelに
入力後、ボタンをクリックすると、入力したデータに対して処理を実行する。
3.Excelファイル内のボタンフォームは、別ファイルに書かれたVBAソースを
参照し、そのVBAを実行する。
4.ソースコードを、別ファイルに記述することで、ボタンフォームの入った
Excelファイルを複数コピーして作成しても、ボタン実行時に見に行く先は
指定したソースファイルとなるため、改修時などは、そのソースファイル
だけを修正すれば、保守性は向上する。
5.実行する手段は、アドインではない。リンクを使用すること。
ということで、以下のことを試しました。
<試行1>
1.ボタンフォームを作成し、そのボタンを右クリック→マクロ新規作成で、
ソースコードを記述した標準モジュールを作成。
2.作成した標準モジュールをbasファイルにエクスポート。
3.VBEにて、標準モジュールを解放。
4.ボタンフォームを右クリック→ハイパーリンクで、2.で作成した
basファイルを指定。
<試行2>
1.ボタンフォームを作成し、そのボタンを右クリック→マクロ新規作成で、
ソースコードを記述した標準モジュールを作成。
2.別名保存で、Excelをxla形式で保存。
3.VBEにて、標準モジュールを解放。
4.ボタンフォームを右クリック→ハイパーリンクで、2.で作成した
xlaファイルを指定。
上記、試行1,2の結果は、残念ながら、ソースコードがそのままエクセル上に
表示される、という結果に終わりました。
フォームのボタンに実行させるべきソースファイルを外に出しして、
ボタンクリック時に、そのソースを実行させる方法をご存知の方、
いらっしゃいましたら、ご指導いただけると幸いです。
宜しくお願いいたします。
|
|