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

スポンサーリンク

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

その中でも、割と多いのがシートをコピーした時の次のメッセージ。

 

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

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

 

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

 

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

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

 

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

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

 

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

エクセルの「既にある名前が含まれています」(名前重複)のメッセージを出さないようにする方法

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

 

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

 

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

 

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

 

では、対策方法です。

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

 

名前の管理ダイアログを表示する。

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

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

 

これ見るとわかるように、一番上の名前以外全て参照エラー(#REF!)になっています。

 

参照エラーを全て削除します。

 

『閉じる』を選択します。

 

これで、コピーで警告メッセージが出ないようになります。

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

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

エクセルの操作ではなく、マクロで名前を非表示にしているのが原因。

こういう場合は、名前を表示させるマクロ(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』

 

『実行』を選択

 

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

 

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

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

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

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

 

この警告メッセージが出るエクセルは、ほとんどは誰かが作ったのを入手したものだと思います。

自分が作ったエクセルだったら名前の管理も出来ているはずなので。

 

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

 

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

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

 

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