こんばんはヤス虎です(*’-‘)
今回は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に入れておくと便利だと思います
最後の一言
このマクロを試す時は自己責任でお願いします(*´Д`*)