理系男子のIoTライフ

理系男子があなたの生活を少し「ラク」にする情報をお届けします。

スポンサーリンク

【名前'○○'は既に存在します】Excelでシートのコピーができない問題の対応方法 

ExcelでVBAを使ってシートをコピーしていると「名前'○○'は既に存在します」というポップアップが出現し、シートがコピーできない場合があります。今回は、シートがコピーできない原因と、その対応方法をご紹介いたします。
f:id:rikei_iot:20180521151435p:plain

スポンサーリンク



Excelでシートのコピーができない!

Excelでシートをコピーしようとすると、「名前'○○'は既に存在します」というポップが表示され、コピーできない場合があります。

実際に出現するポップアップを見てみます。
f:id:rikei_iot:20180521144123p:plain

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

このポップアップで「いいえ」を選択すると、以下のような名前を変更するポップアップが新たに出現します。
f:id:rikei_iot:20180521144135p:plain

【名前の重複】
同じ名前がリンク先のシートに定義されています。

変更前:(変更前の名前)
変更後:(入力フォーム)

このポップアップで適当な名前を入力して「OK」を押しても、最初のポップアップが出現してしまい、無限ループに陥ります。私の場合は、結局アプリの強制終了でループを抜け出しました。

ポップアップが出現する理由

このポップアップが出現する原因としては、「名前の定義がたくさんたまっていること」だそうです。そもそも「名前の定義」とはセルの範囲に名前を付けることで、関数を理解しやすく簡素化することができます。「名前の定義」の活用方法については、以下記事などが参考になります。

tonari-it.com


しかし、「名前の定義」を使っていなくても、今回の問題が発生している方がほとんどではないでしょうか。実は、Excelには1つのファイルを長時間使用していると裏で名前の定義を作成する仕様になっているそうです。ちょっと意味は分かりませんが、そういう仕様だという風に覚えておきましょう。

シートのコピーができない問題の対応

それでは、シートでコピーができない問題の対応方法をご紹介いたします。


対応手順


(1) [Ctrl]+[F3]を押して、「名前の管理」を呼び出す
(2) 上記の画面を呼び出して[Ctrl]+[A]で全ての定義を選択し、削除する

それでも問題が再発する場合の対応方法

全章の対応を行っても、解決しない場合は「名前の管理」画面で表示されない定義ファイルが残っている可能性があります。その場合は、 VBAを使って「名前の管理」で非表示のファイルを表示させる必要があります。


「名前の管理」を全て表示させる手順


(1) [Alt]+[F11]を押して、「VBA」の画面を開く
(2) VBE画面で [Alt + I] を押下してから [Alt + M] を押下することで「標準モジュール」を挿入します。
(3) 標準モジュールに下記コードをコピペします。
(4) コピペしたコードを選択して、[F5]でVBAを実行します。

' 「名前の管理」で表示させるVBAコード
Sub DisplayName()
    Dim name As Object

    For Each name In Names
        If name.Visible = False Then
            name.Visible = True
        End If
    Next
End Sub

以上の操作を行った後「名前の管理」を開くと、非表示だった定義がすべて表示されるようになります。これらの定義をすべて削除すれば、ポップアップは出現しないはずです。


スポンサーリンク


まとめ

今回は、Excelのシートをコピーする際に出現する「名前'○○'は既に存在します」というポップアップを解除する方法をご紹介しました。「名前の定義」を使っていなくても、自動的に作成された定義ファイルが原因なので、削除することで解決できます。

VBAのコーディングをする際には1冊参考書があった方が、作業が捗ります。僕のオススメの参考書はこちらです。


押していただけるとブログ執筆の励みになりますので、ぜひお願い致します。