- ベストアンサー
Excel VBA 自分自身のファイルの置き換え
- 自作マクロを配布しているが、更新に時間がかかるため自動更新を実現したい。
- モジュールとフォームの数が多く、バイナリファイルの入れ替え方式を考えている。
- バイナリファイルの入れ替えはうまくいったが、マクロが起動しない。バイナリファイルに制約があるのか調べたい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いまいちどのファイルにどのマクロがあるのか理解できませんが MACRO.xlsbをリネームしたのにMACRO.xlsbのsheet1に組み込んだマクロを起動するとか… 呼び出すマクロ「削除」は標準モジュールではないのでしょうか シートのマクロでしたら以下のやり取りを参考にしてください。 http://okwave.jp/qa/q7905931.html また、PERSONAJ.xlsbは開いていますでしょうか、開いていない場合はフルパスでファイル名を記述する必要があります。 それでも動かないと思われる場合、マクロは呼び出されているが削除するコードに不備があるもののエラーではないのでそのまま終わってしまっているとか、それ以前のコードでアラートをオフにしたままにしているとかはありませんか。呼び出されているかどうか呼び出される側でmsgboxで確認してみてください。
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1719/2589)
MACRO.xlsbのsheet1に組み込んだマクロの起動はどのような方法でやられているのでしょうか? Workbook_Openで起動でしょうか、他のファイルのマクロからファイルを起動したときにマクロを自動実行するにはAuto_Openだと動きません。 また (4)PERSONAL.xlsbを削除する。 ここで既に削除していますが 別名にしたPERSONAL.xlsbを閉じて、削除する。 いつ別名にしたのでしょうか? > (5)MACRO.xlsbの名前をPERSONAJ.xlsbにする。 > (6)自分自信を別名保存し、MACRO.xlsbをリネームし、そのファイルをオープン。 MACRO.xlsbはすでにリネームされているのに再度リネーム・・・ ファイル名とか書き間違えたのでしょうか
補足
すみません。 色々と、間違いや言葉足らずな部分があったようです。 まず、工程の(4)と(5)は、消し忘れですので、まるっと無視してやって下さい。 正しくは、「コピー後に、まず自分を別名保存」です。 マクロの起動は、Workbook_Openでやっています。 ちなみに、以前標準モジュール内でも他ブックのマクロ呼び出しを試みた事がありますが、その時も同様に動きませんでした。
お礼
お陰様で呼び出しは上手く行きましたが、削除がどうしても上手く行かなくて、結局「自分自信を削除するマクロ」を組み込む事で解決しました。 ご丁寧な回答、ありがとうございました。