- ベストアンサー
Excelで個人用マクロブックを使用したいのですが...
Excelでマクロを作り、個人用マクロブックに登録したのですが、このマクロを他のブックから使用すると Sub または Functionが定義されていない とエラーになります。 なにか勘違いをしているような気がするのですが、どなたか私にアドバイスをしてください。 あるブックで、マクロを作成し、そのマクロの中で、PERSONAL.XLSに作成した サブルーチン(マクロ)を使用したいのです。 こういう使い方は、初めてのような気がしますが、できると思っているのです。 ACCESSのVBAとは違うのでしょうか。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>アドインに登録するということは、Personal.xls が不要で、Personal.Xls をPersonal.Xla として保存するということなのでしょうか。 保存形式が変わるだけで内容は同じですから削除するかフォルダを移動。 (ツールバーとかボタンなどに登録してるなら設定解除。) PERSONAL.XLSに作成したサブルーチン(マクロ)がなかった時の環境に戻せば 問題ないと思います。 アドインとして保存する際は内容がわかりやすい名前が良いですよ。 (「ツール」-「アドイン」のダイアログに表示される名前になるので) チェックボックスのオンオフで読み込めるようにすることが出来るので 必要な時にだけオンにすれば無駄なマクロを読み込まないので起動が速いかと思います。
その他の回答 (5)
- april21
- ベストアンサー率42% (91/216)
>新しいブックを開けて、マクロを使用するとOKなのですが、従来のブック >で使用すると マクロが見つからないのか ”#NAME?”とでます。 こちらはEXCEL 2000です。 それにyamamichiさんがどんな方法でマクロの中からアドインを呼び出そうと してそうなったのかも分からないですし・・・。 従来のブックとは何でしょう? アドインを登録すればどのブックでも使用できると思うのですが・・・? No.5のような操作が出来るのでしょうか?(別の操作方法なのでしょうか?) よくわかりませんが・・・。 マクロの記録を開始して作成したアドインにチェックを入れて外して記録終了。 そうすると登録するマクロにコードが記述されてると思います。 AddIns("作成したアドイン").Installed = True '(Excel2000では) AddIns("作成したアドイン").Installed = False となります。 上は登録で下が解除ですからこの間に作成したアドインを実行させるコード を記述すれば良いのでは? Excel2000では下記のような感じです。 Application.Run ("作成したアドイン.XLA!マクロ名") XPは使ったことありませんのですみませんがわかりません。 (^^)/~~~
お礼
回答ありがとうございます。 もう一度、改めて最初からやり直しましたら、うまく言っております。 XPでは、ちょっとトラブルが続いているものですから(2000ではうまくいっているのにというものが)。 何回も回答を頂き、本当に感謝しております。 またの機会によろしくお願いいたします。
- april21
- ベストアンサー率42% (91/216)
>もう少し、詳しく教えていただけるとありがたいのです。 ワークシートの「名前を付けて保存」の「ファイルの種類」で 「Microsft Excel アドイン」拡張子xlaで保存。 「ツール」-「アドイン」で該当するアドインにチェックボックスにチェック をいれてアドインを登録。
お礼
回答ありがとうございます。 「アドイン」にした方が処理が早くなるということですね。 実は、この質問をする前に、「アドイン」登録処理を一度行っています。 ですが、そのとき、個人用マクロブック(Personal.Xls)とPersonal.Xlaという二つのファイルが出来てしまい、どのブックを開いても、この二つが自動的に立ち上がり、ちょっと混乱してしまったのです。 アドインに登録するということは、Personal.xls が不要で、Personal.Xls をPersonal.Xla として保存するということなのでしょうか。 よろしくご教授のほどお願いいたします。
- april21
- ベストアンサー率42% (91/216)
アドインにした方が処理が速くなると思いますが・・・?
お礼
回答ありがとうございます。 ですが、アドインについては、よくわかならないのです。 ヘルプを読んでみましたが、具体的にはどうすればよいのか..... もう少し、詳しく教えていただけるとありがたいのです。 よろしくお願いいたします。
- april21
- ベストアンサー率42% (91/216)
出来るはずですが・・・。 コードを間違えてるとかないですか?(スペル等) 手順をもう少し詳しく書かれたほうが回答がつきやすいので?
お礼
回答ありがとうございます。 遅くなりましたが、やっと方法がわかりました。 内容については i-harada さんへのお礼の中に記述しました これからも何かありましたらよろしくお願いいたします。
- i-harada
- ベストアンサー率22% (56/252)
i-haradaです。 間違ってたらすいません。 同じブック内にあるマクロしか利用できないような記憶が有ります。 大分探したのですが、書かれたものが見つかりませんでした。 もう一度調べます。
お礼
回答ありがとうございます。 遅くなりましたが、やっと方法がわかりました。 参照元のマクロのモジュール名を変更して参照設定を行う。 これが回答でした。 でも、私にはこの意味がすぐに理解できませんでした。 一般にマクロを作成すると、モジュール名がVBAProjectとなっており、これだと参照設定が出来ないので、この名称を変えてやる必要があるということでした。 いろんな方面で探して、やっと見つけました。 遅くなりましたがありがとうございました。 これからも何かありましたらよろしくお願いいたします。
お礼
回答ありがとうございます。 アドインを作成しました。 しかし、なんとも奇妙な現象が出ています。 新しいブックを開けて、マクロを使用するとOKなのですが、従来のブックで使用すると マクロが見つからないのか ”#NAME?”とでます。 リンク先の更新をするらしいので、いろいろやってみたのですが、うまくいきません。 従来のブックでは、Personal.Xls とリンクしているんで解除してやるということ だと思ったのです。 また、よろしくお願いいたします。 私の環境は WINDOWS ME で EXCEL は OFFICE XPです。