【Excel】「名前 ’○○○’ はすでに存在します。この名前にする場合は [はい] をクリックします。移動またはコピーを行うために ‘○○○’ の名前を変更する場合は、 [いいえ] をクリックします。」と表示される問題【解決方法】

こんにちは、Daniel (@daniel__blog) です。

Excelで、ブックから別ブックにシートのコピーや移動をしようとすると、以下のダイアログボックスが表示されることがあります。

名前 ’<文字列>’ はすでに存在します。この名前にする場合は [はい] をクリックします。移動またはコピーを行うために ‘<文字列>’ の名前を変更する場合は、 [いいえ] をクリックします。

これ、すっごい厄介ですよね。

以下のように、「はい」でも「いいえ」でも[閉じる]ボタンでも中々消えてくれません。

・「はい」を押しても

同じようなダイアログが何度も繰り返し表示され、数回「はい」を押した後にようやく消える。

・「いいえ」を押しても

「名前」が重複しているので「変更後の名前」を登録してください旨のダイアログが表示されるが、登録できても再度最初のような「名前 ’<文字列>’ はすでに存在します。〜」ダイアログが表示されます。

・[閉じる]ボタンを押しても

「いいえ」を押したときと同じ動作になるだけです。

結局、出てしまったら「はい」を押して進めるしかない。。。

この問題の原因と解決方法をご紹介します。

原因

不要な「名前の定義」が残っているため

Excelの機能に「名前の定義」というものがあります。ここに「名前」が登録されていて、シートコピー時にコピー先にもコピーしようとします。

しかし、名前の付いていたセルが、列や行の削除などで無くなってしまう場合があります。そして「名前の定義」だけが残っている状態となり、これが原因であのダイアログが出てしまうようです。

「名前の定義」とは?

セルの範囲に「名前」を付ける事ができる機能です。セル参照や数式に名前を定義することで、複数シートにまたがる計算などを行う際に、付けた名前を数式で使用することができるようになります。

解決方法

「名前の定義」を削除する

Ctrl + F3を押します。すると、「名前の管理」ウィンドウが表示されます。

ここに「名前」が登録されていたから、シートコピー時にダイアログが表示されてしまっていたというわけです。

「名前」を選択して、「削除」をクリックします。

「名前<○○○>を削除しますか?」と表示されるので、「OK」ボタンをクリックします。

「名前の管理」ウィンドウを「閉じる」ボタンをクリックして閉じます。

解決しない場合は、非表示の「名前の定義」があるかも

上記の解決方法を試して「名前の定義」に登録されているもの全てを削除したのに、問題が解消されない場合があります。

それは非表示の「名前の定義」があるからかも…

非表示の名前を表示させて、再度「名前の管理」から削除する必要があります。

Alt + F11 を押します。
「Microsoft Visual Basic for Applications」ウィンドウが開きます。

プロジェクト内の「ThisWorkbook」をダブルクリックします。すると、コードを書き込める画面が表示されます。

以下のコードを貼り付けます。

Sub DisplayName()

Dim name As Object

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

End Sub

貼り付けたらウィンドウを閉じます。

画面上部の「実行」-「マクロの実行」をクリックします。

「ThisWorkbook.DisplayName」というマクロ名を選択し、「実行」ボタンをクリックします。

※必要に応じて、ここで先ほどのマクロは削除してください。
 「実行」-「マクロの実行」の一覧画面から「削除」ボタンを押すことで削除できます。

「Microsoft Visual Basic for Applications」ウィンドウを閉じます。

ここから先は 「名前の定義」を削除する と同じ手順です。
非表示の名前があれば、隠れていたものが出力されるはずです。

今回は以上です!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です