目次:
ビデオ: Excel 数式以外のデータをカンタンに削除する方法 2024
Excelブックでアクティブなワークシートを除くすべてのワークシートを削除することがあります。このような状況では、次のマクロを使用できます。
マクロの仕組み
ここでマクロはワークシートをループし、各ワークシート名をアクティブシートの名前と照合します。マクロがループするたびに、不一致のワークシートが削除されます。手順4でDisplayAlertsプロパティを使用することに注意してください。これにより、Excelの警告が効果的に無効になり、削除を確認する必要はありません。
<! - 1 - >Sub Macro1() 'ステップ1:変数をワークシートとして宣言する'ステップ2:ThisWorkbook内のすべてのワークシートをループします。ワークシートのステップ3:ワークシート名を確認します。 ThisWorkbookに名前をつけてください。アクティブシート。 Name Then Then '手順4:警告を無効にし、アプリケーションを削除します。 DisplayAlerts = False wsです。アプリケーションを削除します。 DisplayAlerts = True End If 'ステップ5:次のワークシートにループするNext ws End Sub
マクロはまずwsというオブジェクトを宣言します。このステップでは、ループするワークシートごとにメモリコンテナが作成されます。
<! - 2 - >ステップ2では、マクロがループを開始し、Excelにこのワークブックのすべてのワークシートを評価します。 ThisWorkbookとActiveWorkbookには違いがあります。 ThisWorkBookオブジェクトは、コードを含むブックを参照します。 ActiveWorkBookオブジェクトは、現在アクティブなブックを参照します。多くの場合、同じオブジェクトが返されますが、コードを実行しているブックがアクティブブックでない場合は、別のオブジェクトが返されます。この場合、他のブックのシートを削除する危険がありませんので、ThisWorkBookを使用します。
<! - 3 - >ステップ3では、マクロは現在アクティブなシート名と現在ループしているシートを単純に比較します。
ステップ4において、シート名が異なる場合、マクロはシートを削除する。前述のとおり、DisplayAlertsを使用して、Excelからの確認チェックを抑制します。シートを削除する前に警告したい場合は、アプリケーションを省略することができます。 DisplayAlerts = Falseです。 DisplayAlertsステートメントを省略すると、メッセージが表示され、ワークシートの削除を取り消すことができます。
ステップ5で、マクロはループバックして次のシートを取得する。すべてのシートが評価された後、マクロは終了します。
警告メッセージを表示するには、Display-Alertsステートメントを省略します。マクロの使用方法
このマクロを実装するには、標準モジュールにコピーして貼り付けます。
-
Alt + F11を押してVisual Basic Editorをアクティブにします。
-
プロジェクトウィンドウでプロジェクト/ワークブック名を右クリックします。
-
[挿入]→[モジュール]を選択します。
-
新しく作成したモジュールにコードを入力するか貼り付けます。
マクロでActiveWorkbookの代わりにThisWorkbookを使用すると、個人用マクロブックからマクロを実行することはできません。どうして? ThisWorkbookは、マクロが適用されるブックにではなく、個人用のマクロブックを参照するためです。