【Excel】名前はすでに存在します。が消えない…非表示にするには?【解決方法】

名前は既に存在します。を非表示にする方法

日々、Excelを使ってお仕事をされている皆様、お疲れ様です。
こんな表示が出てきて苦しんでおられませんか?

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

これ、すんごく厄介ですよね。

この表示が出てくるのは、ブックから別ブックにシートコピーや移動をしたタイミングです。消そうとしても全然消えてくれず、作業のリズムも乱されますね。

この記事では、まずこのダイアログボックスが表示される原因について触れ、そのあとに解決方法についてもご紹介します。

この記事を書いたのは?

記事を書いている僕は、エクセル歴3年ほど。以前までインフラエンジニアで毎日Excelを使っており、消えないダイアログボックスと戦っていました。

経験を元に執筆していきます。

Excelの「名前は既に存在します」問題とは?

さて、この悪名高きダイアログボックス、「はい」か「いいえ」の選択肢に加え、「閉じる」ボタンも用意されています。しかし、どの選択肢を選んでも結果は下記の通り。いずれを選んでもイライラする結末が待っており、消し去るまで手間がかかるのです。

「はい」を押してもすぐ解決しない

「はい」を押した場合、同様のダイアログボックスが繰り返し表示され続けます。数十回にわたり「はい」を忍耐強く押しまくった後にようやく消えます。このチョイスが一番現実的です。

「いいえ」を押してもすぐ解決しない

「いいえ」を押した場合、「名前」が重複しているので「変更後の名前」を登録してください旨のダイアログボックスが表示されます。しかし、ここで名前を新規登録したとしても、再度、最初のような「名前 ’<文字列>’ はすでに存在します。〜」ダイアログボックスが表示されてしまいます。結果、ダイアログボックスが消えることはありません。

「閉じる」ボタンを押してもすぐ解決しない

では、[閉じる]ボタンなら解決できるだろ!いいえ、、残念ながら「いいえ」を押したときと同じ動作をするだけなのです。

結局、出てしまったら最後、「はい」を推し進めて解決するしかない、、、

Excelの「名前は既に存在します」問題の原因

この厄介な問題は、どんな理由で起こるのでしょうか。

その原因は、不要な名前の定義

結論を言うと、不要な名前の定義がなされているからです。

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

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

Excelの「名前の定義」とは?

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

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」ウィンドウを閉じます。

ここから先は 、前述の「名前の定義」を削除する と同じ手順です。


手順を再度下記に記載しますね。
非表示の名前があれば、隠れていたものが出力されるはずです。

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

  • その①:Ctrl + F3を押し「名前の管理」ウィンドウを開く。
  • その②:「名前」を選択して、「削除」をクリックします。
  • その③:「名前<○○○>を削除しますか?」と表示されるので、「OK」ボタンをクリックします。
  • その④:「名前の管理」ウィンドウを「閉じる」ボタンをクリックして閉じます。

まとめ

今回のダイアログボックスは、多くの人にとってはあまり使わない「名前の定義」の機能が原因であるにも関わらず、しぶとく表示され、作業のリズムも崩される厄介なものだったと思います。

しかし、これからはそれに費やしていた時間も失わずに済むと思います。
ぜひダイアログボックスに打ち勝ち、作業に打ち込んで頂ければ幸いです。

今回は以上です!