Excelのシートのコピーで名前の重複による膨大なエラー解消方法

Excelでシートをコピーしようとした際、たまに発生する以下のエラーに長年苦しめられてきました。

本日、またまた、このエラーに遭遇しました。そこで、ちょこっとググって対策を入れたところ、見事に解決したので、記録に残します。

移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前'XXXXXXX’が含まれています。この名前を使用しますか?

同じ現象で悩んでいる方、これで一発解決ですよーー。

1.事象の発生

Excelで、シートをコピーしました。

すると、次のエラーがダイアログボックスに表示されました。

このエラーですが、「はい」をクリックすると、原因が分からんのですが、延々と同じ質問をされます(表示される名前が変わります)。

そして、とんでもないときは、何十回も「はい」のクリックが必要となる場合があるんです。

また、「いいえ」をクリックすると、以下のダイアログで、良くわからない変更後の名前を要求され、適当に入れると、先へ進めますが、これを何度も要求されると、本当に嫌になってきます。

さて、こんな状況を何とかできないものか調べてみます。

2.解決策発見、名前の管理で対応

ググると、このエラーで悩んでいるのは60爺だけではないらしく、たくさんの対応策が見つかりました。うち、良さそうなものがありましたので、実行してみましょう。

以下に手順を示します。まずは、該当のExcelを立ち上げます。

(1) 数式をクリック

(2) 名前の管理をクリック

(3) 表示された名前を全て選んでクリック

(4) 削除をクリック

これで、解決と多くの記事には記載されていました。

ところが、・・・・

シートをコピーしようとすると、今までと同様のダイアログが表示されてしまいました。

なぜ・・・・?

3.解決策2:マクロで対応

ここで諦めては元も子もありません。頑張って解決策がないか探してみましたらありました、ありました。

なんと、VBAマクロを使う方法です。

手順は次の通りです。

(1) 開発をクリック

(2) マクロをクリック

(3) マクロ名を入力後、作成をクリック

(4) マクロの編集

マクロを編集します。

以下のような内容が表示されますので、矢印の部分に、【挿入内容】にあるコードをコピーしてから入力します。

【挿入内容】

Dim C As Name
For Each C In Names
C.Delete
Next

編集後の内容です。この形になったら、右上の × をクリックします。

(5) マクロをクリックして実行

Excelの画面に戻るので、マクロをクリックします。

以下の画面が表示されます。先ほど作成したマクロを選択し、右側にある「実行」をクリックします。

すると、Excelの画面に戻ります。

ここでシートをコピーしてみましょう。見事にエラーが解消しています!

参考
シートをコピーしようとすると名前の定義に関するメッセージが出るのを防ぎたい。