- 締切済み
Excelマクロの配布
失礼いたします。 ExcelVBA初心者で、環境はExcel 2003です。 現在使用しているスケジュール表ワークシート(マクロあり)に、新マクロを追加したいと考えております。 新マクロの内容は、スケジュール表ワークシートのChangeイベントによって実行されるものです。 自分のスケジュール表の場合、ワークシートのコードにChangeイベントを追加・新マクロの記述をすればよいだけなのですが、 同僚にこの新マクロを配布しなければなりません。 なるべく同僚の手間を減らそうと考え、関係のありそうなアドインについて調べたのですが、 ワークシートのコードを変更せず(Changeイベントを追加せず)に、アドインを呼び出す方法が分かりません。 どなたか、詳しい方教えて頂けないでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 おっしゃっている内容に関しては、可能だと思います。アプリケーションを開けたときに、インスタンスを作り、そして、次に、そのインスタンスから、新たなブックのイベントを設ければよいのです。 しかし、本来、SheetChangeイベントは、入力からパフォーマンスまでのタイムラグが長いのと、入力方法がいろいろあるので、インターラプトされやすく、エラーが発生すると、イベントは壊れてしまいます。On Error トラップだけではまかないきれないのではないか、と思います。 自分のものなら、調整できても他人のワークシートのイベントの仕組みが壊れたときの復旧までは面倒見切れないと思うのです。もちろん、同じフロアで、「おーい!来てくれ」で、面倒が見れる範囲ならよいのですし、マクロ上で何かあっても、再起動すればよい、と答えるという人もいます。ただ、それは、その人のプログラミングのポリシーと技術力の問題です。 SheetChangeのマクロコードを見ずに、こういうことを書くのは軽率かもしれませんが、私は、現行バージョンでは、あまりアドイン型には、SheetChangeイベントはふさわしくないような気がします。 アドイン型の場合は、入力方法が限定されているコマンドボタンなどのほうがよいです。人は、こちらの思ったとおりには使ってくれないことが多いし、思わぬ使い方をする人もいます。 また、配布自体の方法論ではなく、あくまでも、その設計の問題です。 もう少し、内容など詳しいものがあれば、また考えてみたいとは思いますが、今の段階での、私のアドバイスです。
- merlionXX
- ベストアンサー率48% (1930/4007)
エクセル2000までならマクロでモジュールに記述されたコードの書き換え等の操作できたのですが2003から出来なくなったと思います。 新しいマクロを記載したBOOKにユーザーが使っているスケジュール表ワークシートを自動的にコピーするようにマクロ書いて、そのBOOKを配布したらどうですか?
お礼
ご回答ありがとうございます。 申し訳ございませんが、 ExcelVBAの全体的な知識不足や工数の問題もありまして、 もっとも単純な方法である、コード自体の配布を考えています。 親切にありがとうございました。
- marbin
- ベストアンサー率27% (636/2290)
参考HPです。 「配布の問題」 http://www.asahi-net.or.jp/~ef2o-inue/haifu/sub06_010.html
お礼
参考HPありがとうございます。 詳しく調べてみたいと思います。
お礼
ご回答ありがとうございます。 大変参考になりました。 けれど申し訳ございませんが、 ExcelVBAの全体的な知識不足や工数の問題もありまして、 もっとも単純な配布方法である、コード自体の配布を考えています。 ご丁寧にありがとうございました。