2015/02/26

[Excel]シートをコピーするときに「既にある名前が~含まれています」的なメッセージが出る場合の対処

他人が作成したExcelを編集したりするとき、シートをコピーするときに「既にある名前~が含まれています」的なメッセージが大量に出てうっとおしい場合の対処。

引用:http://www.excel.studio-kazu.jp/kw/20071111234547.html

下記をマクロに登録。

Sub NameListPrint()
     Dim i As Long
     Dim Sh As Worksheet
     Set Sh = Worksheets.Add
     With ActiveWorkbook
         For i = 1 To .Names.Count
             Sh.Cells(i, 1).Value = .Names(i).Name
             Sh.Cells(i, 2).Value = "'" & .Names(i).RefersTo
         Next i
     End With
 End Sub

 Sub NamesDelete()
     Dim i As Long
     With ActiveWorkbook
         For i = .Names.Count To 1 Step -1
             .Names(i).Delete
         Next i
     End With
 End Sub
Sub NameListPrint():名前定義の一覧が新規シートで作成される
Sub NamesDelete():名前定義を削除する

たまに表示されない名前があるので、その時は下記で対処。

引用:Excelの見えない名前定義を削除する方法

Public Sub DeleteNames()
    Dim wName As Object
    Dim wCnt As Long
    For Each wName In Names
        If wName.Visible = False Then
            wName.Visible = True
            wCnt = wCnt + 1
        End If
    Next
    If wCnt <> 0 Then
        MsgBox wCnt & "個の名前定義が見つかりました。",vbInformation
    Else
       MsgBox "非表示の名前定義はありません。",vbExclamation
    End If
End Sub

Sub DeleteNames():実行すると名前定義に表示されるようになる。あとはCtrl+Aが効かないのでShiftとかで全選択して削除。

0 件のコメント: