数十(または数百)を含むワークシートを日常的に使用していますか

名前付きセルの、そしてそれらの名前のほとんどは不要ですか?名前をクリーンアップすることは大きな作業ですが、不要な名前を取り除くことで、ワークブックをより小さく、より効率的にすることができます。問題は、どうすれば多くの不要な名前を一度に取り除くことができるかということです。確かに一度に1つずつ削除することはできますが、そのようなプロセスはすぐに面倒になります。

考えられる解決策の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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

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

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

link:/ excelribbon-Deleting_All_Names_but_a_Few [Deleting All Names but aFew]