少数を除くすべての名前の削除(Microsoft Excel)
数十(または数百)を含むワークシートを日常的に使用していますか
名前付きセルの、そしてそれらの名前のほとんどは不要ですか?名前をクリーンアップするのは大変な作業になる可能性がありますが、不要な名前を削除すると、ブックが小さくなり、効率が向上します。問題は、どうすれば多くの不要な名前を一度に取り除くことができるかということです。確かに一度に1つずつ削除することはできますが、そのようなプロセスはすぐに面倒になります。ネームマネージャーを使用してそれらを削除することもできますが(Ctrl + F3を押す)、それも非常に時間がかかる可能性があります。
考えられる解決策の1つは、新しいブックを作成し、古いブックから新しいブックにセルをコピーすることです。古いブックのセルを強調表示し、Ctrl + Cを使用してコピーしてから、新しいブックのワークシートに貼り付けます。これにより、数式、書式設定など、古いブックのほとんどすべてがコピーされます。印刷設定や範囲名をコピーすることはできません。残っている唯一のタスクは、新しいワークブックで必要ないくつかの名前を再定義することです。
古いワークブック(すべての名前が付いているワークブック)を使用する場合は、名前の削除を行うマクロを作成することをお勧めします。保持したい名前を除くすべての名前を削除できるマクロが必要です。以下は、このタスクを実行する簡単なアプローチです。
Sub DeleteSomeNames() Dim vKeep Dim nm As Name Dim x As Integer Dim AWF As WorksheetFunction 'Add Names to keep here vKeep = Array("Name1", "Name2") Set AWF = Application.WorksheetFunction For Each nm In ActiveWorkbook.Names x = 0 On Error Resume Next x = AWF.Match(nm.Name, vKeep, 0) On Error GoTo 0 If x = 0 Then nm.Delete End If Next Set AWF = Nothing End Sub
マクロを使用する前に、vKeep配列を作成する行を変更してください。
配列内に保持する名前を入力するだけです。各名前は引用符で囲み、コンマで区切ります。 (ここに示す例では、「Name1」と「Name2」という名前が保持されます。)マクロはブック内のすべての名前をループし、Match関数を使用して名前が配列内の名前であるかどうかを確認します。そうでない場合は、削除されます。
ブック内の名前を管理するためにサードパーティのソリューションを使用する場合は、Jan KarelPieterseによって作成されたNameManagerアドインが最適です。アドインの詳細については、こちらをご覧ください:
http://www.jkp-ads.com/officemarketplacenm-en.asp
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11787)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。
Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: