• ベストアンサー

EXCELで作成したものがマクロを有効にできない

EXCEL2003で作成したものがセキュリティーを中にしても低にしてもマクロを有効にできなくなってしまいました。 作成中のテストではすべて有効になっていたのに突然有効にならなくなってしまいました。 セキュリティーは確認しましたが中にしても低にしても有効にするダイヤログが現れてくれません。 何とか有効にする方法はありませんか バックアップのファイルもだめです。 ほかのものは全部マクロが有効になります。 どうか助けてくださいお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

>シートはコピーできます セキュリティーもOKですがModuleがありません。おそらく見えていないと思います。 見えていないなんてことではなくて、おそらくは、なくなっていますね。私の場合も、ブック全体にエラーが出て、VBEの部分がなくなってしまったこともあります。 エラーを出して、再起動したことがあるのではありませんか? UserForm という話ですから、特にUserForm のコードの書き方によって、アプリ全体のエラーを発生されることがあります。 見えないと思うなら、バイナリエディタで中身を調べれば分かるはずですが、Excelのバイナリファイルには、シート毎の切れ目やVBA部分にも切れ目があって、切り離されてしまうことがあります。見えないものを、サルベージする方法は、ほとんどありません。 一旦、エラーが出たものは、バイナリエディタで確認して、まったくきれいになっているならともかく、よほどのことがない限りは、新規ブックに作り直したほうが安全だと思います。

saab8743
質問者

お礼

おっしゃる通りでしたUserFormのエラーが何度か出て修正を繰り返していました。 UserFormのエラーの場合はアプリ全体のエラーになったこともあって苦労していました。 自動修復を勘違いしていましたので確かに自動修復がかかったのですが、今まではヴァージョン1とかのファイル名で保存していたのですが今回に限り上書きを試みたところでした ショックです・・・・・ 元のバックアップからもう一度作り直すと大変の作業になりますが仕方ないです。 ところで自動修復がかからないようにすることはできるのでしょうか? 本当にありがとうございましたいい勉強をしました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

今回は、一応、ここまでにしておきますが、詳しいご質問は、また再び、こちら側に質問しただいてよいかと思います。 >自動修復を勘違いしていましたので確かに自動修復がかかったのですが、 この時に、エラーの部分を切り出すか聞いていたはずです。それで、切り出してしまったのだろうと思います。ところが、その時に、オリジナルそのものは、あったはずです。 >自動修復がかからないようにすることはできるのでしょうか? Office のリソース・キットのツールの中で、グループポリシーの編集が出来るツールがありますから、それで、OfficeADMFilesから、以下の部分を編集すればよいはずです。(私個人はいじったことがありません。理由は後に書きます。) ここの中で、Policy という所が、通常 Yes になっているものを、No にすればよいはずです。 データの回復 ・破損したブックを開くときにオプションを表示しない ・データを回復した時に、ブックの構成された記憶形式は完全であるとみなす ・不正な形式のファイル変換  ・・修復不可能な参照を変換: 大事なExcelファイルは、起動時(Workbook_Open)に、以下のようなコードを入れています。 ただし、実際は、日付をチェックして、名前を換えて別なバックアップもありますから、もう少し複雑です。3日毎、古いファイルも残しています。 Excel 内のコマンドではなく、外部ツールを使うのがコツです。 Backupフォルダーに With CreateObject("Scripting.FilesystemObject")  .Copyfile ThisWorkbook.Path & "\" & ThisWorkbook.Name, ThisWorkbook.Path & "\Backup\" & ThisWorkbook.Name End With 終了時(DateLastModified の日付を調べて、3日を過ぎたら、保存) BaseName は、拡張子を取ったものです。 With CreateObject("Scripting.FilesystemObject") If Dir(Back_Folder & BaseName & ".Bk3") = "" Then   .Copyfile ThisWorkbook.FullName, Back_Folder & BaseName & ".Bk3" End If End With ところで、ご質問者さんは、UWSCで、外部からキーボードマクロは使っているとしたら、それは、エラーを誘発しやすいものがあるかもしれません。外部に抜ける時に、エラーを拾うことがあります。UWSCには、別の使い方もあるようですが、これは、Win32APIそのものを呼び出すツールでもあるので、使い方はなかなか難しいかもしれません。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>Moduleがありません。おそらく見えていないと思います。 >ユーザーフォームも見えません。 「有効に出来ない」だけで「マクロは確かに(ブックに)ある」という安心材料,つまり証拠は何か見つかっているのでしょうか? なんだか例えば,ブックの破損に伴い自動修復がかかってマクロ以降のブックデータをばっさり切り捨てられてしまった,などの状況のようにも見えます。 たとえば今「Moduleも無い,UserFormも無い」状態のファイルの複製を取って改めてテストのModuleとマクロを新規追加し,保存して開き直してみたら正常に「有効にしますか」が出てしまったら,やっぱり今の状態でマクロがそもそも「ない」ので「有効にしますか」も出てこないのだと判断できてしまいます。 もっと前の世代のバックアップが残っている事に期待します。

saab8743
質問者

お礼

確認しましたらおっしゃる通りでした。 自動修復を勘違いしていましたので確かに自動修復がかかったのですが、今まではヴァージョン1とかのファイル名で保存していたのですが今回に限り上書きを試みたところでした ショックです・・・・・ 前の世代のバックアップからもう一度作り直すと大変の作業になりますが仕方ないです。 ところで自動修復がかからないようにすることはできるのでしょうか? 本当にありがとうございましたいい勉強をしました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

とりあえずブックを開き,VBE画面のツールメニューの参照設定でエラーの表示がでているものがないか確認します。 チェックを入れ直してみるなどしてみましょう。 また簡易には 1.元データのシートを新規ブックにコピーする 2.マクロをModuleもコピー,移動する などして新規ブックに移植して動作確認してみます。

saab8743
質問者

補足

ありがとうございました。 シートはコピーできます セキュリティーもOKですがModuleがありません。おそらく見えていないと思います。 ユーザーフォームも見えません。 方法はないのでしょうか?

関連するQ&A