Excel エラー「このブックには Excel 4.0 マクロまたは Excel 5.0 モジュールが含まれています」

Excel エラー「このブックには Excel 4.0 マクロまたは Excel 5.0 モジュールが含まれています」

ブックの保護機能で保護されたブックがあります。それを変更するために他の人に送りました。送り返されたとき、ブックは保護されておらず、再度保護しようとすると、このエラーが発生します。

「このブックには Excel 4.0 マクロまたは Excel 5.0 モジュールが含まれています。このドキュメントをパスワードで保護したり、アクセスを制限したりする場合は、これらのマクロを削除する必要があります。」

確認したところ、編集されたファイルには新しいマクロはありませんでした。元のファイルには同じマクロが含まれていて、書き込み禁止にできたので、変更されたファイルに問題がある理由がわかりません。このエラーの一般的な原因と解決策は何ですか。また、元のファイルにはエラーがないのに、変更されたファイルにエラーがあるのは理にかなっていますか。

答え1

「ブックの保護」をクリックしてから、「構造とウィンドウの保護」の選択を解除してみてください。私の場合はこれでうまくいきました。

答え2

もちろん、以下は、この問題を検索し、解決策を必要としている人向けです。投稿者はとっくに気にしなくなっているはずです。

メッセージの唯一の理由は、主に次の 2 つのクラスに分類されます。

  1. Excel のコピーでファイル全般を有効にした人は、Excel 4 (および 5、ただし人々はそう呼んでいます) のマクロ、コマンド、マクロ ページの両方を使用でき、実際に文字どおりのマクロを作成できた可能性があります。確かに VBA マクロとは見た目が異なりますが、一度見ればすぐに理解できるでしょう。

あり得ない。

  1. used one of the viable (for this kind of use) Excel 4 macro commands名前付き範囲内にファイルを持っていた人。これが起こった可能性が非常に高いです。

Excel 4 のマクロ コマンドはマクロ コマンドであるため、文字どおりのマクロでも名前付き範囲でも、それらを使用すると、Excel はスプレッドシートにマクロが含まれているものとして扱います。2021 年の初め頃までは、それらを使用しているファイル (この時点では実際のマクロではなく名前付き範囲) を保存することができ、保存中に、ファイルをマクロ対応ファイル (つまり、.XLSX ではなく .XLSM) として保存するように Excel から警告が表示されました。「いいえ」と言うと、保存は通常どおりに機能し、この警告は二度と表示されません。ファイルを開いても警告は表示されず、名前付き範囲の数式は正常に機能しました。

過去 1 年ちょっとの間、そのようなことは起こりません。.XLSM 形式を使用しない場合、次に Excel 4 を開いたときに Excel 4 の関数は消え、その関数が含まれた名前付き範囲を使用するセルの数式は壊れます。.XLSM 形式を使用すると、多くの人がスプレッドシートを開かなくなります。ただし、名前付き範囲が使用する数式は、開いた場合でも機能します。

2 番目は、間違いなく調べる必要があるものです。名前マネージャーを開いて、名前付き範囲を調べ、そのRefers to内容 (通常は数式または範囲) を確認します。Excel 4 の関数名を探します。

たとえば、EVALUATE()は Excel 4 マクロ言語のすばらしい関数ですが、現代にはまったく同等のものがありません。まったく、あるいはそれに近いものさえありません。スプレッドシートを私から返してもらってこのメッセージが表示されたら、私は 10 回のうち 7 ~ 8 回はこの機能を使用したかもしれません。(もちろん、保護を破って (世界で最も簡単なことですが)、スプレッドシートを勝手に操作したという明らかなサインを残すことは絶対にしません。他の人はもっと不注意だったり、まったく気にしなかったりします。悲しいことですが。)

いずれにせよ、あなたが認識していない関数を見つけた場合は、2 つの簡単な方法のいずれかで確認できます。インターネットでその関数を検索できます。Excel 4 のマクロ コマンドの 1 つであれば、最初にヒットした 1 つか 2 つでその事実が確実にわかります。人々は、あなたが知らないことを知っていることをあなたに知ってもらいたいと考えています。これは、あなたが人々を驚かせているところを想像すると楽しいものです。

もう 1 つの方法はさらに簡単です。セルに移動して関数を含む数式を開始し、関数名を入力しているときにヘルプがIntellisense表示されるかどうかを確認します。表示されない場合は、ヘルプの 1 つを見つけたことになります (他の人がさらに使用している可能性があります)。関数を終了して Enter キーを押し、エラーが発生するか、または#NAME!他の何かが発生するかどうかを確認します。そのエラーが発生するものはすべて、ヘルプの 1 つです。

この時点で、または他の何かをする前に、相手に連絡して「ねえ、こういうことをしたの?」と尋ねることができます。多くの人は恥ずかしそうに「ああ、ええと、そうですね...」と言って、片付けを手伝ってくれるでしょう。しかし、かなりの数の人は黙って、まるで角が生えたかのようにあなたをじっと見つめるので、次のようになります。

自分が作成したものでない場合は、そのような名前付き範囲をすべて削除します。これが最も可能性が高いことです。また、他の人が放置したスプレッドシートでそれらの使用は失敗しますが、あなたはいずれにしてもそれらを必要としませんでした。それらを調査して削除するか、必要に応じて修正します。これは、かなり目立つ使用と削除または簡単な修正のいずれかであれば簡単です。特に、その人がクリーンアップしようとして本当に混乱を残した場合は、かなり複雑になる可能性があります。

管理者の監督なしに、その人が行うひどい仕事について再びその人と働くかどうかについては、考慮すべき一連の要因がありますoutside the question itselfが、これは、より一般的な問題を探して前進する方法を必要としている人、そしておそらく非対立的な前進方法を好む人を対象としています。

最後に、彼が何らかの方法でそれを修正し、おそらく一般使用のためにそれを返送したということを考えると、それは可能ですが、極めてありそうにありません。彼は、それらのコマンドの使用を厳しく制限する MS の手順 (企業は、セキュリティ センターとエンタープライズ ポリシーを介してそれらを完全に閉じることができるようになりました。これは、以前は可能だったかもしれませんが、プログラムが積極的に提起したことではありませんでした) に気付いていなかったかもしれませんが、25 年ぶりにそれらのコマンドを廃止することにようやく真剣に取り組むようになったため、彼は Excel 4 マクロ自体を実際に作成する仕事を続けることは考えられなかったはずです。しかし、もし彼がそうしていたとしても、それらはそれらのために挿入された特別なページに配置されていたので、かなり簡単に見分けられたでしょう。しかし、彼がそのようなことをしたのであれば、真面目な話、彼の変更は彼のコンピューター以外ではまったく使用できず、誰も受け入れないでしょう。彼に送信されたオリジナルに戻って、スプレッドシートを修正する別の方法を見つけてください。

私は自分の Excel でこれらを有効にしていますが、それを許容できる作業として他の人に押し付けるつもりはありません。これらは私自身の作業用であり、めったに使用しません。絶対に他の人に渡すものではありません。

関連情報