Excelで作業しているため、行った変更に関しては、少し「セーフティネット」が用意されています。ほとんどの人は、物事を台無しにした場合、Ctrl + Zをすばやく押すか、プログラムウィンドウの左上にある[元に戻す]ツールをクリックできることを知っています。今行ったことが気に入らない場合は、簡単に元に戻して、以前の状態に戻すことができます。

ただし、マクロを実行すると、マクロは[元に戻す]リストと「うまく機能」しません。実際、マクロを実行すると元に戻すリストが完全に消去されるため、マクロの実行による影響を自動的に元に戻すことはできません。元に戻すリストを保持するための組み込みコマンド(ExcelまたはVBA)はありません。ただし、問題に取り組む方法はいくつかあります。

マクロの効果を元に戻したいと思う場合、最初にできることは、マクロを実行する前にブックを保存することです。これにより、事実上、ワークブックの「マクロ前」バージョンが提供されます。

後でこのバージョンに戻したい場合は、保存せずにブックを閉じてから、ディスクからリロードしてください。

もう1つのオプションは、マクロの実行方法を再考することです。ワークシート内の情報を大量に処理するマクロがある場合は、変更したものの状態をメモリ内に維持するようにマクロをコーディングします。次に、この情報を読み取り、最初のマクロの効果を効果的に元に戻す別のマクロを作成できます。

このアプローチを本当に便利にするために、プライマリマクロの最後のステップは、元に戻すスタックに情報を「詰め込む」ことです。この情報は、ユーザーが作成したマクロを「元に戻す」ために使用できます。たとえば、次のマクロコマンドは、プライマリマクロの最後のコマンドである可能性があります。

Application.OnUndo "Primary Macro", "UndoPrimary"

このコマンドの後、ユーザーが[元に戻す]リストを見ると、「プライマリマクロ」というテキストが表示されます。元に戻すリストからこのオプションを選択すると、「元に戻す」マクロ(UndoPrimary)が実行されます。

このアプローチでは、マクロを実行する前に[元に戻す]リストにあったものが保存されないことに注意してください。これを行う方法はないようです。プライマリマクロの実行が完了すると、[元に戻す]リストで使用できるオプションはプライマリマクロのみになります。

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(12513)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Preserving_the_Undo_List [元に戻すリストの保存]