リチャードは、彼がしばらく使用しているワークブックを持っており、その中にはかなりの数の名前(名前付き範囲、名前付き数式など)があります。彼はそれらの名前を取り除きたいので、まったく使用されていない名前を見つける簡単な方法があるかどうか疑問に思います。

これらの未使用の名前を取り除く組み込みの方法はありません。ただし、トリックを実行するマクロを作成することはできます。これは、Findメソッドを使用して、「検索」できる参照を持つ名前を特定することで最も簡単に実行できます。参照が見つからない場合、その名前は使用されていません。

Sub RidOfNames()

Dim myName As Name     Dim fdMsg As String

On Error Resume Next     fdMsg = ""

For Each myName In Names         If Cells.Find(What:=myName.Name, _           After:=ActiveCell, _           LookIn:=xlFormulas, _           LookAt:=xlPart, _           SearchOrder:=xlByRows, _           SearchDirection:=xlNext, _           MatchCase:=False, _           SearchFormat:=False).Activate = False Then             fdMsg = fdMsg & myName.Name & vbCr             ActiveWorkbook.Names(myName.Name).Delete         End If     Next myName     If fdMsg = "" Then         MsgBox "No unused names found in the workbook"

Else         MsgBox "Names Deleted:" & vbCr & fdMsg     End If End Sub

マクロは、Namesコレクションのすべての要素をステップスルーし、各名前を検索します。名前が見つからない場合は、名前が削除されます。マクロが完了すると、ブックから削除された名前を一覧表示するメッセージボックスが表示されます。

独自のマクロを作成したくない場合は、Jan KarelPieterseによる無料のアドインを使用することを選択できます。 Name Managerと呼ばれるこのアドインを使用すると、ネイティブのExcelよりも名前を適切に管理できます(何を推測しますか?)。それが提供する機能の1つは、不要になった名前を取り除く機能です。アドインはここにあります:

http://www.jkp-ads.com/OfficeMarketPlaceNM-EN.asp

注:

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

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

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