[[20111108174017]] 『マクロ保持ファイルが開きません』(代理人) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ保持ファイルが開きません』(代理人)

 久しぶりのお願いとなりますが、お教え願います。

 マクロ保持ファイルを開こうとすると、砂時計が出たっきり動かず"応答なし"
 になってしまいます。
 タスクマネージャで見ると、同名ファイルが2つ起動した状態で片方が"応答なし"
 となっています。
 EXCELマクロのセキュリティを"高"にすれば開くのですが、マクロが無効の設定と
 なり起動できません。"中"以下では同じ症状となります。
   (メッセージ:"このプロジェクトのマクロは無効と設定されています。・・・")
 一応正常に起動するマクロファイルをコピーし、コード等を入替えてトライして
 みましたが、症状は同じでした。

 そもそも既存のマクロに機能を追加しようとして、更新&保存を繰り返していたので、
 その間無意識に何かやらかしたのかもしれません。あるいは壊れたのでしょうか?
 ちなみに他のマクロ保持ファイルは、"中"以下で正常に動きます。

 ご助言よろしくお願いします。

 EXCEL2000  WindowsXP ver2002 SP3


 私も10年以上前に一度だけ、同じような経験をした記憶があります。
 こういうときのために開発日誌の記述が必要ですねえ
 かなり記憶があいまいなんですが・・・。
 Excel2000でした。

 そのブックには、Auto_Open(Workbook_Open()だったかな)で開いたら、作動するVBAコードがありました。

 95%仕上がった状態でのそれでしたから、愕然とした(納期もせまっていましたし)。

 それで行ったこと。

 モジュール名をこのサイト投稿には、Module1やModule2と既定名で投稿します
 (その方が再現手順が簡単)が、実際には、すべてそのモジュールの機能に沿った
 名前を付けています。

 モジュールを一度、全部エクスポートした後、既定名(Module1やModule2など)名前の
 モジュールにコードをコピーしました。

 私の場合は、これで上記の現象が治りました。

 参考程度ということで・・・・。

 ichinose


ichinose 様

 ご助言ありがとうございました。
 新規ブックの新規モジュール(Module1・・・)にソースコードを全て転記したところ、
 セキュリティが"中"以下でもブックを開くことができました!

 しかし! 一難去ってまた一難。新たな問題が。

 早速マクロを起動したのですが、今まで何の問題もなかったダイアログシート表示のところ
  DialogSheets("Dialog1").Show
 で、"Showメソッドが失敗しました"とのメッセージが出て止まってしまいます。
 表示前に行うダイアログシート上のテキストボックスへの文字挿入などはできているので、
 何らかの認識はできていると思うのですが。
 基ブックからダイアログシートごと転記したことで、内部的に名前の不整合が起きたか、
 また別の要因なのか、わかりません。
 過去ログも見たのですが、参考になるものが捜せず困りました。

 しつこいようで恐縮ですが、何か思い当たるふしがあればご助言願います。


 私が申し上げたのは、新規ブックにではなく、
 既存のブック(元々、マクロ有効時に開けないブック)に対し、
 標準モジュールだけ、一度ブックから切り離しその中身のコードを既定名のモジュールに入れなおす という事だったのですが・・・(バックアップは取ってくださいね)。

 DialogSheetsというのは、私は、殆ど使ったことがないので、
 Showメソッドが失敗しました というメッセージには心当たりがありません。

 新規ブックに元ブックの全てのシート(ダイアログシートを含む)をコピーしたのですよね?
 シートやThisworkbookに、VBAコードの有無も確認してください。

 新規ブックに対し、元ブックのシートが正しくコピーされているのであれば、
 そこでモジュール名もModule1等から元もとのモジュール名に直してみるのは
 どうでしょうか?

 実は、現象が治った直後は、怖くて出来なかったのですが、
 余裕が出来てきてから、私は、モジュール名を元のコードに、つまり、関連のある名前に戻しました。それでも正常に作動しています。

 以上、参考にしてください。

 ichinose


ichinose様

ご返答ありがとうございました。

 > 私が申し上げたのは、新規ブックにではなく、既存のブック
 > (元々、マクロ有効時に開けないブック)に対し、標準モジュールだけ、一度ブック から切り離し
 > その中身のコードを既定名のモジュールに入れなおす という事だったのですが・・・

 そうだったんですね。
 早速意図された通りやりましたら、ファイルは開けましたし、
 新たな問題(ダイアログ表示しない)も発生せず、正常に戻れました。
 一件落着です。

 ご助言ありがとうございました。大変助かりました。
 今後もよろしくご教授願います。                    (代理人)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.