新型コロナ対策のため、密閉・密集・密接空間を避けて、こまめに石鹸で手洗いをしよう!詳細はこちら。

シートコピーの「既にある名前が含まれています」(名前重複)を解決!

シートコピーの「既にある名前が含まれています」(名前重複)を解決する コピー

エクセルを使っていると、たまによくわからないエラー(警告)が出る場合があります。

その中でも、割と多いのがエクセルのシートをコピーした時のエラー。

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

移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’○○○’が含まれています

または、『同じ名前がリンク先のシートに定義されています』というメッセージが表示されることもあります。

この警告メッセージは、『セルの範囲を定義している名前』の参照先がおかしくなっている場合に、よく出ます。

この警告メッセージが出ることも問題なんですが、一番の問題は「はい」を選んでも「いいえ」を選んでも定義されている名前の分だけ、ひたすらダイアログを閉じる操作を延々としないといけないこと。

下手すれば何十回、何百回と繰り返されることもあるので、この名前重複警告メッセージが出た時に『あーまた何回もキーボード叩かないといけないんだ』とモチベーションが下がる人もいると思います。

どうして、取り消すという「キャンセル」ボタンを設けないんでしょうか。

ともかく、なにがなんでもコピーさせようとするのが、腹たちます^^

ということで、この恐怖の名前重複警告メッセージが出ないようにする方法を紹介します。

エクセルのシートコピーのエラー(名前重複の警告)を出さないようにする

さっそく、恐怖の警告メッセージ(既にある名前が含まれています)が出ないようにする方法を紹介します。

やることは、『名前の管理で参照エラーになっている名前を削除する』だけ。

名前というのは、下の画像のように『セルの場所(範囲)につけられる名前』のことです。

これから、警告メッセージが出ないように名前を削除していきますが、削除していい名前かどうかは事前に確認してください。

 

では、シートコピーエラー(名前重複警告)の対策方法です。

下の画像のエクセルは、『シートC(3)』をコピーしようとすると警告メッセージが出る状態です。

 

まず、名前の管理ダイアログを表示させます。

ショートカットキーだと『CTRL』+『F3』キー、アクセスキーでは『ALT』→『M』→『N』で名前の管理ダイアログが表示されます。

マウスではリボンの『数式』タブ→『名前の管理』とクリックしてください。

 

上記名前の管理のダイアログを見ると、一番上の名前以外全て参照エラー(#REF!)になっていることがわかります。

続いて、この参照エラーを削除していきます。

参照エラーとなっている行を選択して、「削除」ボタンを押します。

 

削除できたら『閉じる』を選択。

 

これで、今後コピーしても名前重複の警告メッセージが出ないようになります。

『名前の管理』に名前が表示されない場合の対応

普通は、名前の管理に『定義されている名前』は全て表示されますが、まれに表示されないことがあります。

この場合は、マクロ(VBA)で名前を非表示にしていることがあります。

なので、名前を表示させるマクロ(VBA)を利用します。

名前を表示させるマクロ(VBA)で名前を表示させる

では、名前を表示させるマクロの実行方法を紹介します。

まず、エクセルを開いた状態で、マクロのエディター(VBAエディター)を『ALT』+『F11』のショートカットキーで表示させます。

 

次に、名前を表示させるVBAコード実行用の標準モジュールを追加します。

メニューの『挿入』→『標準モジュール』(アクセスキーは『ALT』→『I』→『M』)

 

次に、赤枠のコード領域に『名前を表示させるマクロ(VBA)コード』を丸々コピー&ペースト。

↓このコードをコピー(名前を表示させるマクロ(VBA)コード)

Public Sub ShowName()
    
    Dim targetName As Object
    
    For Each targetName In Names
        
        If targetName.Visible = False Then
            targetName.Visible = True
        End If
    
    Next
    
    MsgBox "名前管理で表示できるようにしました。", vbOKOnly

End Sub

 

コードを書き込んだので、『CTRL』+『S』で保存。

『はい』を選択

本来は、マクロを含む形式の拡張子『.xlsm』で保存すべきですが、一時的にマクロを使いたいだけなので、『マクロなしのブックとして保存する』を選択します。

ただし、エクセルを開いている間はマクロの実行は可能ですが、エクセルを保存してもマクロは保存されないので注意してください。

 

マクロ(VBA)を使う時の警告なので、『はい』を選択

VBAエディターを一旦閉じます。(『ALT』+『F4』キーか、右上の☓マークを押す)

 

では、マクロ(VBA)を実行させてみます。

リボンタブの『表示』→『マクロ』→『マクロの表示』か、アクセスキーだと『ALT』→『W』→『M』→『V』

 

追加したマクロの名前(ShowName)を選択して『実行』をクリック。

 

マクロ(VBA)の実行が完了したので、『OK』を選択

 

これで、『CTRL』+『F3』で『名前の管理』を確認すると、名前が表示されるようになります。

シートコピーの「既にある名前が含まれています」(名前重複)を解決する方法のまとめ

シートのコピーで出る名前重複の警告メッセージは、今回紹介した方法で出なくなるはずです。

もし、『名前の管理』で名前が出ない場合は、先の表示させるマクロ(VBA)を利用してください。

警告メッセージが出る原因にはいろいろ(マイクロソフトのバグも含む)ありますが、どこからかエクセルを入手した場合は、できれば名前の参照がエラーになっていないかを確認することが望ましいです。

1つのシートに何十個、何百個と参照できない名前があると、その数の分だけひたすら警告ダイアログでボタンを押す必要があり、かなり苦痛です。

なので、名前重複のエラーが出た場合は、出来るだけ早く今回紹介した方法で対策をしてみてください。

シートをコピーするたびに、何回もダイアログを閉じないといけない『不毛な操作』だけはしたくないものですね^^