Excelで非表示の名前定義を表示する方法

こんばんはヤス虎です(*’-‘)

今回はExcelでシートコピーをする時に

「名前 ‘_***’は既に存在します。この名前にする場合は[はい]をクリックします

移動またはコピーを行うために’_***’の名前を変更する場合は、[いいえ]をクリックします。」

っと言うウィンドウが出るExcelファイルの解決方法です

この問題は古いバージョンのExcelファイルを新しいExcel2013で使った時に

ヤス虎は発生したので互換問題なのかなっと思います

ヤス虎は’_***’の所に’_Key1’や’_Sort’が出ました(‘~’)

[Y]か[Enter]キーを押しっぱなしにして表示されるウィンドウをすべて閉じる方法も有りますが

多くなってくると大変なので問題の名前を消す方法で紹介します

まずExcelウィンドウで[Ctrl+F3]を押して名前の管理を表示して問題の名前を削除します

Print_Areaは印刷範囲なので消すと印刷範囲を再設定しないとダメになります

もし問題の名前が表示されていない時は非表示の名前を表示して消すことになります

非表示の名前を表示する方法ですが簡単に表示できなそうなので下の方法で表示させます

ExcelのVisual Basic Editorを[Alt+F11]で開いて

「Alt+I」を押下してから「Alt+M」を押下して「標準モジュール」を挿入します

この時[Alt]キーは離さず[I][M]と押します

その中にネットで見つけた下記マクロを入力して実行します

Public Sub 名前管理で名前を表示()
    Dim name As Object
    For Each name In Names
    	If name.Visible = False	Then
		name.Visible = True
	End If
    Next
    MsgBox "すべての名前の定義を表示しました。", vbOKOnly
End Sub

実行方法はExcelで[Alt+F8]を押してマクロを開いて「名前管理で名前を表示」を選び実行をクリックです

以上で非表示の名前が表示されましたので

再度、[Ctrl+F3]を押して名前の管理を表示して

問題の名前を削除すれば終了です

名前の管理の中にエラーがある名前がある場合は

フィルターからエラーのある名前を選んで表示された名前を削除すれば簡単です

ヤス虎の場合’_Key1,_Order1,_Sort,Z_8E816000~(フィルター?),_FilterDatabase’などの名前があり’_FilterDatabase’以外は削除してみました

今のとこ問題は起きてないので大丈夫なはずです(‘∇’)

次は表示した名前を消す方法です

表示された名前が’!_~’であったので

‘!_~’がある名前を全部非表示にすれば良いかと思い

以下のマクロを作ってみました

Public Sub 名前管理で名前を非表示()
    Dim name As Object
    For Each name In Names
         Debug.Print name.name
        If name.name Like "*!_*" Then
            name.Visible = False
        End If
    Next
    MsgBox "名前の定義を非表示しました。", vbOKOnly
End Sub

沢山のファイルでこの問題が出る場合はマクロをPERSONAL.XLSBに入れておくと便利だと思います

最後の一言

このマクロを試す時は自己責任でお願いします(*´Д`*)

スポンサーリンク
広告336
広告336

シェアする

スポンサーリンク
広告336