Devarajanは、ワークブックが破損する状況に遭遇しましたが、ワークブックに関連付けられていたマクロモジュールを回復したいと考えていました。 (マクロはかなりの開発時間を表しています。)

Devarajanは、モジュールをどのように回復できるのか疑問に思いました。

答えは、主に、ブックが実際にどの程度破損しているか、および破損がブック内のどこにあるかに依存します。破損したブックを回復する方法については多くのことが書かれています。この点に関しては、次のリソースが役立ちます。

http://support.microsoft.com/kb/142117 (for Excel 97)

http://support.microsoft.com/kb/179871 (for Excel 2000)

http://support.microsoft.com/kb/820741 (for Excel 2002 and 2003)

http://www.jkp-ads.com/Articles/CorruptFiles.asp

これらのページのほとんどは、ワークブックに関連付けられたモジュール内のマクロの回復ではなく、データの回復に特に言及しています。 (Microsoftサポート技術情報に破損したExcel 2007ブックからのデータの回復に関する記事がないのは興味深いことです。おそらく、時間とともに来るでしょう。)マクロを取得するために試みる可能性のあることの1つは次のとおりです。

。 Excelを開きますが、問題のあるブックは開きません。

。計算モードを手動に設定します([ツール] | [オプション] | [計算]タブ| [手動])。

。セキュリティ設定を高に設定します([ツール]、[マクロ]、[セキュリティ]、[高])。

。面倒なワークブックを開きます。正常に開くと、マクロが無効になっていることが通知されます。 (ブックが開かない場合は、Excelをシャットダウンすることをお勧めします。この一連の手順は機能しません。)

。 Alt + F11を押して、VBAエディターを表示します。

。プロジェクトエクスプローラーで、保存するモジュールを見つけます。

。モジュール名を右クリックして、[ファイルのエクスポート]を選択します。

。モジュールを保存する場所の名前と場所を指定します。

。 VBAエディターを閉じて、Excelを終了します。

。モジュールを独自のファイルに保存すると、必要に応じて別のブックにインポートできるようになります。

回復を試みる別の方法は、MicrosoftOfficeの無料の代替手段であるOpenOfficeを使用することです。 OpenOfficeのスプレッドシートプログラムはExcelファイルを開きますが、一部の破損の問題にはそれほど敏感ではありません。

それでも機能しない場合は、ディスクからセクターごとにファイルを読み取って、各セクターの情報を確認できる低レベルのファイル操作ツールを使用してみてください。ほとんどの種類のファイルでは、これはあまり役に立ちません。実際、Excelブックからデータを回復するのに役立ちません。ただし、マクロの回復は別の話です。これらはプレーンASCIIテキストでブックに保存されるため、マクロコードを認識して、ディスクツールからコピーできるはずです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2399)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。