Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
エクセル シートコピー時の名前定義のトラブル発生の件
投稿日時: 18/04/12 13:54:33
投稿者: タカヒロ

下記トラブル発生理由が分かりません。教えて下さい。
回避方法があれば教えて下さい。
 
セルデータ(表)のあるエクセルシートを右クリックをして、シートコピーをした際に場合によっては『名前の重複』(内容:同じ名前がリンク先のシートに定義されています。というエラーが発生します。
変更前:○○(なんらかの記号)、変更後(N):四角枠(なんらかの文字を入力するように文字枠があります。)
OKボタン、キャンセルボタン
 
上記の記入枠になんらかの文字を入力しても『同じ名前が既に定義されています』とメッセージが出るのですがしのような名前のシートは他にありません。
一度このエラーが発生した場合、解除できない状態で繰り返しエラーの表示が出ます。
 
強制終了以外にいまのところ解除の仕方がわかりません。
 
 
 

回答
投稿日時: 18/04/12 15:38:41
投稿者: んなっと

その定義された名前が不要であれば、シートコピー前に
 
 [数式]
→[名前の管理]
→ShiftキーやCtrlキーを併用して不要な名前をすべて選択
→[削除]

回答
投稿日時: 18/04/12 15:46:01
投稿者: WinArrow
投稿者のウェブサイトに移動

説明文でわからないところ
  
 (1)この「シートコピー」は
同一ブック内の話ですか?
それとも、他ブックへの複写ですか?
  
 (2)このエラーは「シート名」が重複しているのではなく
 セル範囲に設定した「名前」が重複しているものと推測します。
  
なお
>文字枠
って、何ですか?
>記入枠
って、なんですか?

投稿日時: 18/04/13 05:00:55
投稿者: タカヒロ

んなっと様
お世話になります。
内容確認をさせていただきたく
しばらくお待ち下さい。
 
WinArrow様
お世話になります。
 

引用:
(1)この「シートコピー」は
同一ブック内の話ですか?
それとも、他ブックへの複写ですか?

シートコピーは同一ブック内で同じシートをコピーする際に発生します。
 
 
引用:
なお
>文字枠
って、何ですか?
>記入枠
って、なんですか?

 
 
文字枠も記入枠も同一内容の事で、エラーメッセージ内の入力する欄のことです。
 
モーグ様(HP内)のモーグ学習室の
Lesson8:ダイアログボックスの使い方に記する
ダイヤログボックス内の”テキストボックス”という名称
と同じ言い方をすると思います。
 
 
 

回答
投稿日時: 18/04/13 08:30:34
投稿者: WinArrow
投稿者のウェブサイトに移動

>シートコピーは同一ブック内で同じシートをコピーする際に発生します。
 
そうですか・・・・
 
>名前の重複エラー
は、他ブックへシートを複写(又は移動)した時に
複写先ブックに同名の「名前」が設定されているというエラー
だと考えているんですが・・・・・
 
>名前は
 
ブックレベル

シートレベル
で設定することができます。
 
●ブック内でシートを複写した場合について
・複写元のシートにブックレベルで名前設定していた場合、
 複写先シートでは、シートレベルの名前で複写されるから・・・・重複エラーは出ない
・複写元のシートにシートレベルで名前設定していた場合、
 シートレベルだからシート尾複写しても「何ら問題はない・・・・当然重複エラーは出ない
 
●他ブックへのシートの複写(又は移動)した場合について
・複写先ブックに同名の名前がブックレベルで設定されていた場合・・・・名前重複エラーがでる
・複写先ブックに同名の名前がシートレベルで設定されていた場合・・・・何ら問題はない。
 
この仕様は、Excel2007で確認したものですが、
Excel2013で変更になっているかわかりませんので、確認してみてください。
 
 
もう一つの「文字枠」「記入枠」の件
Lesson8で「テキストボックス」と説明しているものと同じならば、
テキストボックス
と記述すれば、よいでしょう。
あなたの固有の言葉を記述されると、誤解を招く恐れがあります。
 
ところで、今回のエラー表示にはダイアログが表示されるんですか?
そのダイアログのタイトルには、どのような表示があるのですか?
「テキストボックス」と同じものを指すならば
 
 

回答
投稿日時: 18/04/13 10:33:15
投稿者: んなっと

以下のサイトを参考にしてください。
3:「\」、4:「$」を含まないも条件に入れてしまうと、必要な名前まで削除する可能性もあります。
 
不要な名前定義を削除する方法
http://katsuro.wp.xdomain.jp/2017/04/17/post-69/

回答
投稿日時: 18/04/13 15:36:33
投稿者: WinArrow
投稿者のウェブサイトに移動

質問にある
同一ブック内のシートの複写時の「名前の重複」エラーの現象は、
Excel2002バージョンで発生していたようです。
Excel2003で対処、Excel2007でも問題ありません。
しかし、Excel2010で、再発しているようです。
 
 
複写先に既に同じ名前が定義されているって
考えてみればおかしな話です。
これから複写して作成するシートは、複写前にはシートが存在していないのになぜ名前だけ設定されているのでしょう?
他ブックへのシート複写ならば理解できます。
 
対処策としては
複写元の名前をシートレベルに設定しなおす必要があるようです。
 
 
ブックレベルの名前設定をシートレベルに置換するマクロ例
を紹介しておきます。
 
 
Private Type myTYPE
    myName As String
    myrefersto As String
End Type
 
Dim tblName() As myTYPE
Dim Tx As Long
 
Sub ブックレベルの名前設定をシートレベルに置換するマクロ例()
Dim myName As Name, myINDEX As Long
 
    ReDim tlname(0)
     
    For Each myName In ThisWorkbook.Names
        If Left$(myName.Name, InStr(myName.Name & "!", "!")) <> Mid$(Left$(myName.RefersTo, InStr(myName, "!")), 2) Then
            Tx = Tx + 1
            ReDim Preserve tblName(Tx)
            tblName(Tx).myName = Mid$(Left$(myName.RefersTo, InStr(myName, "!")), 2) & myName.Name
            tblName(Tx).myrefersto = myName.RefersTo
            myName.Delete
        End If
    Next
     
    For Tx = LBound(tblName) To UBound(tblName)
        If Tx > 0 Then
            Names.Add Name:=tblName(Tx).myName, _
                    RefersTo:=tblName(Tx).myrefersto
        End If
    Next
         
End Sub
 
 
 

回答
投稿日時: 18/04/15 10:30:35
投稿者: WinArrow
投稿者のウェブサイトに移動

↑で
ブックレベルの名前をシートレベルに変換するマクロを紹介しましたが、
 
参照している数式の変更が必要になります。
 
ブックレベルで設定した名前の参照は
単純に
=数量*単価
のように数式を入力しますが、
 
シートレベルで設定した名前の参照は、
=Sheet1!数量*Sheet1!単価
のように、シート名を付加しないと意図した結果は得られません。
 
因みに、私は、ブックレベルと、シートレベルが混在したブックでは、
数式で使用する名前はブックレベルで設定したもののみと限定しています。
シートレベルの名前は、VBAの中で使うようにしています。
 
同一シート内でブックレベルとシートレベルで、同じ名前を設定可能ですが、
混乱するので、区別できるような名前にすることをお勧めします。
 
 

回答
投稿日時: 18/04/15 11:04:49
投稿者: んなっと

こちらのサイトの方がわかりやすいかもしれません。
 
シートのコピーをすると、[名前の重複]が表示される(Excel2010/2007)
http://www.kye.co.jp/kye-kyg-help-ex012.html
 
名前が非表示になっていて表示されないときは、マクロを使って表示に変えてから削除します。
これは先に紹介したページのマクロでいいと思います。

投稿日時: 18/04/16 08:19:46
投稿者: タカヒロ

んなっと様
画像の添付ができないので、詳細をどの様に伝えたらよいかを思案しておりました。
先の情報の
『シートのコピーをすると、[名前の重複]が表示される(Excel2010/2007)
http://www.kye.co.jp/kye-kyg-help-ex012.html
のHP内に記載されています症状と同等の物であると思います。
エクセル2013のものですが、おそらく同じ症状であろうかと思います。
 
ありがとうございます。
一度内容確認をしてみたいと思います。
 

回答
投稿日時: 18/04/16 11:07:17
投稿者: Mike

議論、喧しいけど・・・
 
》 シートコピーは同一ブック内で同じシートをコピーする際に発生
と仰ってますが、私の Excel 2013 (OS は Win10 Pro Ver.1709 OSbuild:16299.371)に限って言えば、コピー先が別ブック内であっても、『名前の重複』エラーなんてのは出ません。
 
「名前」が例えば「タカヒロ」の場合で実験しました。
タカヒロ.xlsx というブック内のシート「タカヒロ」内に範囲名「タカヒロ」があって、当該範囲名の適用範囲はブックで作成されています。(適用範囲の既定値はブックです)
 
コピー先にシート「タカヒロ」が存在している場合は、コピーされたシート名は「タカヒロ(2)」になるだけのこと。
コピー先のシート「タカヒロ」内に範囲名「タカヒロ」が存在していても、その適用範囲はシート「タカヒロ(2)」だけに自動的になるだけのこと。(今回の実験で知りました!)
 
以上、実験的事実だけを記しました。私に誤解があればご指摘ください。

回答
投稿日時: 18/04/16 14:22:15
投稿者: WinArrow
投稿者のウェブサイトに移動

Mike さんへ
 
名前重複エラーは
シート名が重複しているのではなく、
ブックレベルで定義している「名前」が重複しているというエラーです。
 
他ブックへシートを複写した時、
複写先ブックに同名の「名前」が設定されていると
このようなエラーがでます。
 
同一ブック内で「名前重複」という現象が
どのような場合に発生するのか?
私にも理解できていません。
 
私がテストしたところ
ブックレベルで定義している「名前」が参照しているシート
を複写した場合、エラーにはならずに、シートレベルの名前として複写されます。
たぶん、エラーになる条件が限定されているような気がいたします。
 

回答
投稿日時: 18/04/16 16:34:02
投稿者: Mike

WinArrow さんの引用:
名前重複エラーはシート名が重複しているのではなく、ブックレベルで定義している「名前」が重複しているというエラーです。
あれ「ブックレベル」とは「同一ブック内」という意味ですか?それとも「異なるブック間」?
 
WinArrow さんの引用:
他ブックへシートを複写した時、複写先ブックに同名の「名前」が設定されていると このようなエラーがでます。
私がテストしたところ ブックレベルで定義している「名前」が参照しているシートを複写した場合、エラーにはならずに、シートレベルの名前として複写されます
嗚呼、貴方が仰る「ブックレベル」とは、[名前の管理]メニュー内の、あるいは、同メニュー内の[新規作成]や[編集]をクリックして現れるメニュー内の、[範囲]欄が「ブック」と表示される場合のことだったのですね。
 
WinArrow さんの引用:
同一ブック内で「名前重複」という現象がどのような場合に発生するのか?私にも理解できていません
とのことですが、ご報告したように「私がテストしたところ」ではエラーは出ません。コピー先に「ブックレベル」の同名前があったら、コピー元から来た同名前は「シートレベル」に変貌するのです。

回答
投稿日時: 18/04/16 16:34:18
投稿者: んなっと

2007以降の再現手順
 
1. Sheet1のA1に "aaaa" という名前を付ける(ブック範囲)
 
2. 1行目を削除する
  (この段階で 数式 名前の管理 を見ると#REF!エラーが発生...ここがポイント)
 
3. Sheet1をコピーする
  Sheet1 (2) にも "aaaa" という名前ができ、シート範囲に変換される
 
4. できたSheet (2) をさらにコピーしようとすると
 「移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前'aaaa'が含まれています...」
  →いいえ
 「同じ名前がリンク先のシートに定義されています。変更前 aaaa ...」
 
 
2. の段階で#REF!エラーが発生していなければ 4. の現象は起こらない。以降も何度シートコピーしてもOK。
 
もしも#REF!エラーのある名前があれば、すべて削除してください。
名前の管理 フィルター エラーのある名前 もつかえます。
 
それはそうと、Mikeさん。

引用:
喧しい

やかましいと書き込むのは自由ですが、
今後あなたの書き込み内容に対しても同じような表現で評価させていただきます。
容赦しません。
これからもよろしくお願いします。

回答
投稿日時: 18/04/16 16:46:01
投稿者: Mike

んなっと さんの引用:
やかましいと書き込むのは自由ですが、今後あなたの書き込み内容に対しても同じような表現で評価させていただきます。容赦しません
「容赦し」ないのは構いませんが、私は軽い「騒がしい、賑やかだ」の意味で「かまびすしい」と読みながら書き込んだのです。その読みをご存知なかった?
恥ずかしながら、私は「やかましい」の漢字を知りませんでしたので、勉強にはなりました。

回答
投稿日時: 18/04/16 17:05:24
投稿者: んなっと

「かまびすしい」の意味は検索して調べましたか?
自分に都合の良いところだけ貼り付けないでくださいね。
ま、今後が楽しみです。

回答
投稿日時: 18/04/16 17:10:39
投稿者: WinArrow
投稿者のウェブサイトに移動

んなっと さんへ
 
再現手順の解説ありがとうございました。
Excel2007環境では再現しました。
 
でも、質問者さんの最初の質問の中にある
>強制終了
するような状態にはなりません。
 
いずれにしても
#REF状態の「名前」があると
思わぬところで、地雷を踏む可能性があるので
名前を削除することをお勧めします。

回答
投稿日時: 18/04/16 17:18:12
投稿者: んなっと

aaaa 以外に bbbb,cccc,dddd...とエラーのある名前が異常に多いと、
名前の重複を知らせるダイアログも次から次へと出てきますね。
 
コピーを繰り返しているブックらしいので、名前のエラー以外にも原因があるかもしれません。

投稿日時: 18/04/17 08:23:50
投稿者: タカヒロ

お世話になります。
いただきました情報を元に調べさせていただきました。
 
 
 
 
Microsoft Excel というタイトルのエラーメッセージがまず出ます。
内容は
名前’_FD1’は既に存在します。この名前はにする場合は[はい]をクリックします。移動またはコピーを行うために’_FD1’の名前を変更する場合は、[いいえ]をクリックします。
(このメッセージの下に はい(Y)、 いいえ(N)の選択ボタンがあります。)
 
コピーのシートは特に名前をつけていても全然異なる名前をエラーメッセージで指摘します。
名前をつけていない sheet1 であっても同じく、まったく関係の無い名前でエラーメッセージで指摘されます。
 
上記の選択肢で はい(Y)を選択すると名前’_FD1”の部分が全く関係の無いアンダー記号と数字の
名前のようなもので存在するとの状態のままエラー表示のループ状態になります。
 
 
 
上記の選択しで いいえ(N)を選択すると、
名前の重複  というタイトルのエラーメッセージが表示されます。(タイトルの表示は青い横帯部分です。)
 
内容は
同じ名前がリンク先に定義されています。
変更前: _FD1 ※(上記のものから継続してボタンをいいえ(N)と押した場合)
変更後(N): (ダイヤログボックス ※なんらかの名前を入力する )
 OKボタン 、キャンセルボタン
 
上記のエラーメッセージから 変更後の名前を適当に付けて(あきらかに無いであろう名前を付ける)も
その名前を指摘したMicrosoft Excelというタイトルのエラーメッセージが表示され、この一連の内容を何度繰り返しても状況が解除されません。
 
ちなみに、んなっと様から処理が遅い為に発生する可能性があるとの情報が戴きましたので、このコピー元内の表(エクセル関数を多用しています。元の表は171行、T列の範囲)を半分の85行、T列にしました。(同じ表形式で2つの表間で、異なる計算していたものを半分消しました。)
その後で同様のコピーを行ったところエラーが発生しませんでした。
 
また、数式 名前の管理で内容確認してみると、多く名前の羅列があるのを確認できました。
 
実際にこの名前を削除して問題が解決できるのかは、また確認してみたいと思います。
申し訳ありませんが、しばらくお時間を下さい。
 
 
 

回答
投稿日時: 18/04/17 12:20:36
投稿者: んなっと

引用:
処理が遅い為に発生する可能性がある

違います。
最初から「不要な名前を削除してください」と書いています。

投稿日時: 18/04/17 13:44:44
投稿者: タカヒロ

んなっと様
 
お世話になります。
名前の管理内に記載の名前の異常なものを全て削除してから、ファイルサイズを見て123kBと
小さくなっていると見て、ブックを上書き保存しました。
その後、シートを同一ブック内でコピーしてみると症状が再発しました。
症状は同様で、まったくエラー状態から抜け出せないため、強制終了を実施しています。
 
同一ブックに新規シートを作成して、問題の表の全体をコピーし、新規シートに
貼り付けるのは問題なくコピーできます。
しかし、(名前の管理内の異常な名前を全て消したのちに)シート自体を右クリック『移動またはコピー』からシートをコピーするのはできませんでした。
 

回答
投稿日時: 18/04/17 16:19:27
投稿者: んなっと

では次に、マクロですね。
 
名前を参照している数式の結果が変わってしまう可能性もあるので、
どちらの方法も必ずテスト用ブックとして別名で保存してから。
 
【方法1】
非表示になってしまった名前まで削除する、下のページのA。再度リンクを貼ります。
http://katsuro.wp.xdomain.jp/2017/04/17/post-69/
 
【方法2】
適用範囲をシートに変更するWinArrowさんのマクロも有効です。

回答
投稿日時: 18/04/17 16:39:09
投稿者: WinArrow
投稿者のウェブサイトに移動

>_FD1
というアンダーバー付の名前は、
>FD1
がセルアドレスとなってしまうため、Excelがアンダーバーを補完して付けた名前です。
もし、数式の引数として、FD1を使用しているならば、それは名前ではなくセルを参照していることになります。名前の管理では、_FD1がどこのシートのどのセルを参照しているかわかりますので、確認してみてください。もう一つ、"_FD1"が#REF!になっているかも確認して下さい。
 
 

タカヒロ さんの引用:

名前の管理内に記載の名前の異常なものを全て削除してから、ファイルサイズを見て123kBと
小さくなっていると見て、ブックを上書き保存しました。

ここの部分について、質問します。
(1)異常なもの
とは、具体的にどのようなものですか?
 
(2)ファイルサイズを見て123kBと小さくなっていると見て、ブックを上書き保存
上書き保存する前にファイルサイズを見たならば、読み込んだときのままなので、小さくなっていることは確認できないはず・・・・
 

投稿日時: 18/04/18 08:28:04
投稿者: タカヒロ

WinArrow様
 
お世話になります。
 
 

引用:
ここの部分について、質問します。
(1)異常なもの
とは、具体的にどのようなものですか?
  
(2)ファイルサイズを見て123kBと小さくなっていると見て、ブックを上書き保存
上書き保存する前にファイルサイズを見たならば、読み込んだときのままなので、小さくなっていることは確認できないはず・・・・

 
 
引用:
不要な名前定義を削除する方法
http://katsuro.wp.xdomain.jp/2017/04/17/post-69/

(1)の件ですが、上記のアドレスに記載の
・「値」が異常なものを順次選択して「削除(D)」をクリック
   1:「#REF!」、2:「#N/A」、3:「\」、4:「$」を含まない
というものを参考に致しました。
この1:「#REF!」というものが値の欄に記載されている状態のものが相当数ありました(100個以上あったと思います。)
 
(2)の件ですが上記の「値」を全て削除して、上書き保存実施後にエクセルのブックを最小化。
その後に当該ブックのフォルダを『右クリック』⇒『プロパティ(R)』してフォルダの『サイズ』を
確認しました。
 
※ 問題のブックは最小化は出来ますが、閉じる、新たに何かを入力するなどの操作はできません。
新しいブックなど、別に開いたエクセルは通常に使用できます。
この問題の無いブックと問題のブックを開いている状態で、問題のブックのみをタスクマネージャーを起動させて強制終了させると全てのエクセルが閉じます。その後はすべてのブックが異常終了扱いになり、データの回復(復旧)をさせるかどうかの選択になります。(申し訳ありません。データの異常を出すと面倒ですので、時間がある時に確認したいと思います。確認に時間をいただけませんでしょうか。)
 
※ 半年ほど前に何かを名前の重複のエラーのダイヤログボックスに連続して適当に名前を記載OKを繰り返していたら正常な状態(シートのコピーはされない。エラーのみ解除)に戻ったことがありましたが、再現できませんでした。
 
※ 先のコメントで異常のあるシート内の2つの表のうち、1つを消した後にコピーをすると名前の重複のエラーが発生しなかったと記していますが、その後、同じ事を実施し、再現できるか確認いたしましたが、
名前の重複のエラーが発生しました。再現できる時とできない時。違いが分かりません。
 
※ エクセル2013(Win7 32bit)でエラーが発生していますので、エクセル2010でテストをしてみたいと
思っています。(こちらも時間が無くテストできていません。申し訳ありません)
 
引用:
>_FD1
というアンダーバー付の名前は、
>FD1
がセルアドレスとなってしまうため、Excelがアンダーバーを補完して付けた名前です。
もし、数式の引数として、FD1を使用しているならば、それは名前ではなくセルを参照していることになります。名前の管理では、_FD1がどこのシートのどのセルを参照しているかわかりますので、確認してみてください。もう一つ、"_FD1"が#REF!になっているかも確認して下さい。
  

 
・今、当該ブックの問題のシートを確認させて戴きました。FD1のセルは一切何も無い状態でした(無記入状態です。白文字で何かあるかもみましたが一切、関数やエラーメッセージなどはありませんでした。)。
 
 
 

回答
投稿日時: 18/04/18 08:48:18
投稿者: んなっと

問題を切り分けるために、とにかく
別名保存→名前削除などのマクロ
 を早く試してください。
  
ただ、おそらく
 ・その後も現れるダイアログ→「はい」を根気よく繰り返してから
 ・再度名前削除を実行
の連続になると思います。
 
名前削除のマクロ、いろいろありますね。みなさんすごい。

引用:
EXCELで定義した名前を一括削除する方法(vba)
http://trash-area.com/archives/677

投稿日時: 18/04/18 10:32:32
投稿者: タカヒロ

んなっと様
 
お世話になります。
小生はマクロ、VBAについて詳しくありません。
モーグ様の小説を読んで、本で内容確認している程度のレベルです。
 
資料に記載の通り、VBAにコードを貼り付けてみたいと思います。
記載されています、レベルに達していませんので内容を精査して
実行したいと思います。
対応が遅くなり申し訳ありません。
 
お手数おかけいたします。

回答
投稿日時: 18/04/18 10:44:30
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:
・今、当該ブックの問題のシートを確認させて戴きました。FD1のセルは一切何も無い状態でした(無記入状態です。白文字で何かあるかもみましたが一切、関数やエラーメッセージなどはありませんでした。)。
 

 
↑の回答ありがとうございました。
でも、質問内容と喰い違う回答をされても、状況はわかりません。
※FD1セルの値は、今回の課題解決には関係ありません。
 
質問内容を、再掲しますので、お願いします。
「名前の管理」ダイアログだけ見てください。
(1)名前が"_FD1"の「値」は、"#REF!"になっていませんか?
 "#REF!"になっている原因は、参照範囲は不明(名前定義後、参照しているセルを削除)ためです。
(2)"#REF!"になっていない場合は、参照範囲にシート名とセルアドレスが表示されています。
 
次に(2)の場合について
 「名前の定義」ダイアログを閉じてから
名前定義の「参照範囲」のシートのセルにカーソルを移動させて、
「数式」タブの中の「参照先のトレース」ボタンをクリックしてみてください。
この時、「アクティブセルを参照している数式はありません」と表示されれば、
"_FD1"という名前は使用されていないことになります。・・・つまり「不要」
 

投稿日時: 18/04/18 12:53:17
投稿者: タカヒロ

 
WinArrow様
 
お世話になります。
 

「名前の管理」ダイアログだけ見てください。 
(1)名前が"_FD1"の「値」は、"#REF!"になっていませんか? 
 "#REF!"になっている原因は、参照範囲は不明(名前定義後、参照しているセルを削除)ためです。 
 

⇒_FD1の「値」は'#REF!'です。
 
なお、この値の名前を削除した後(「名前の管理」ダイヤログボックスが空になった状態)で
上書き保存して、
同ブック内にシートをコピーしても同様のエラーが発生します。
この場合のエラーは全く見たこともない文字が表示されます。

回答
投稿日時: 18/04/18 14:51:29
投稿者: WinArrow
投稿者のウェブサイトに移動

タカヒロ さんの引用:

WinArrow様
 
お世話になります。
 
「名前の管理」ダイアログだけ見てください。 
(1)名前が"_FD1"の「値」は、"#REF!"になっていませんか? 
 "#REF!"になっている原因は、参照範囲は不明(名前定義後、参照しているセルを削除)ためです。 
 

⇒_FD1の「値」は'#REF!'です。
 
なお、この値の名前を削除した後(「名前の管理」ダイヤログボックスが空になった状態)で
上書き保存して、
同ブック内にシートをコピーしても同様のエラーが発生します。
この場合のエラーは全く見たこともない文字が表示されます。

 
 
こちらは、Excel2007の環境ですが、
名前"_FD1"の「値]=#REF!の状態のブックを作成し、
シートをコピーしたとき、名前の重複エラーが出ます。
 
しかし
>この場合のエラーは全く見たこともない文字が表示されます。
は、表示されません。
 
何処に、どのような文字列が表示されているか?
掲示できますか?

投稿日時: 18/04/18 15:04:30
投稿者: タカヒロ

んなっと様
 
お世話になります。
引用下記アドレスの一番したのマクロを貼り付けし、マクロ有効状態で保存。
その後、「名前の管理」内にエラーの「値」のが無い状態にしてからシートをコピーしました。
シートのコピー1回できました。エラーはかかりません。
また「名前の管理」内の「値」を見ました。何も無い状態です。
もう一度、同じシートを(元のシートと同名の(2)のもの)をコピーしました。
この場合は、当初のトラブル(名前の重複)のエラーが発生しました。
 
1回のみシートのエラーが回避できることを3回再現できました。
いずれも2連続コピーは不可能でした。
 

引用:
http://trash-area.com/archives/677

投稿日時: 18/04/18 15:28:08
投稿者: タカヒロ

んなっと様
 
お世話になります。
 
2回目連続のエラーメッセージは下記のエラーメッセージの’_FD1’の部分が’_123Graph_Aキイン’と記したメッセージが現れます。
その後は、恐らく社内ネットワーク内のエクセルのブック内に含まれるであろう文字の一部が_FD1の部分に置き換えた状態で現れます。
このエラーメッセージを 『はい(Y)』を29回連続して選択すると30回目には、トラブル元のシート(コピーしたかったシート)がコピーされます。
※このエラーメッセージの『はい(Y)』を選択する際には別途『名前の重複』(ダイアログボックスの入力)自体発生しません。
 
(まとめ)

@同一ブック内でシートをコピーしようとして名前の重複エラーが発生したものを、トラブル対策用のマクロを
当該ブックのVBAの標準モジュールにコピーペーストして、マクロ有効状態で名前をつけて保存をしました。
 
A名前の管理内の異常を確認できた「値」を全て削除しました。
 
Bトラブル元のシートを同一ブック内でコピー⇒1回目、シートコピー成功
⇒2回目(連続)では、同一の名前の重複のエラーメッセージが発生⇒29回名前を変更する場合の選択を『はい(Y)』と選択します。’_○○’の○○は恐らく他のブックのセルの情報と、その情報とは関係の無いアルファベット+数字が入ります。(『名前の重複』のエラーメッセージは発生しない。)
29回目以降はエラーメッセージは発生せずに、トラブル元のシートがそのままコピーできました。
(この状態を3回再現できました。)
 
 

引用:
Microsoft Excel というタイトルのエラーメッセージがまず出ます。
内容は
名前’_FD1’は既に存在します。この名前はにする場合は[はい]をクリックします。移動またはコピーを行うために’_FD1’の名前を変更する場合は、[いいえ]をクリックします。
(このメッセージの下に はい(Y)、 いいえ(N)の選択ボタンがあります。)

回答
投稿日時: 18/04/18 16:04:17
投稿者: んなっと

引用:
標準モジュールにコピーペーストして、マクロ有効状態で名前をつけて保存
名前の管理内の異常を確認できた「値」を全て削除

貼り付けただけで、マクロを実行していないように読めてしまうのですが...
DeleteDefinedNamesマクロは、どのタイミングで実行しているのですか?
テスト用ブックでマクロを実行すると、あるタイミングでエラーが発生すると思います。
発生しなかったですか?

回答
投稿日時: 18/04/18 17:39:55
投稿者: WinArrow
投稿者のウェブサイトに移動

んなっとさん、紹介の
>不要な名前定義を削除する方法
 
ですが、
ブックレベル(範囲がブック)とシートレベル(範囲がシート名)で
同じ名前の定義が存在していた場合、
シートレベルの方が削除されて
ブックレベルが残っている可能性があります。
2回、実行すれば確実と思います。
 
 
名前の管理ボックスに表示されない「名前」定義が存在するってあり?
どのようなケースでしょうか?
どのように確認したらよいのでしょうか?
 
後学のためにどなたか教えてください。
 

回答
投稿日時: 18/04/18 18:55:07
投稿者: んなっと

インストールされたExcelアドインやCOMアドインが悪さをして、
内部処理に使う非表示の名前を追加しているかもしれません。
   
通常のマクロでもこんなことをされたら、他人は普通気が付きませんよね。
  With ActiveWorkbook.Names.Add(Name:="C_015", RefersTo:="=" & ActiveSheet.Name & "!$C$1:$AB$500")
    .Visible = False
  End With
..ただ、WinArrowさんもご存知のように、名前定義はVBAと実に相性がいいんですよね。
修正が楽です。
   
     
※テスト用ブックである程度実験して、
元のブックの名前削除は手作業で慎重にやりたいときは少し短いコードで。
   
Sub NameVisible()
  Dim n As Name
  For Each n In ActiveWorkbook.Names
    n.Visible = True
  Next
End Sub

投稿日時: 18/04/19 01:14:31
投稿者: タカヒロ

んなっと様
  
お世話になります。
 
すみません。
マクロの実行というのを知りませんでしたので、VBAにマクロを張り付けてで上書きすれば
良いものと思っていました。
マクロの実行はしていませんでした。
後でマクロの実行をいたしました。
この後あとエクセルに戻ってシートのコピーをしたのですが、今度は1回目から名前の重複エラー
 
Microsoft Excel というタイトルのエラーメッセージが出ます。
内容は
名前’’_123Graph_Aキイン’は既に存在します。この名前はにする場合は[はい]をクリックします。移動またはコピーを行うために’_FD1’の名前を変更する場合は、[いいえ]をクリックします。
(このメッセージの下に はい(Y)、 いいえ(N)の選択ボタンがあります。)
 
※(名前の管理内の異常「値」の有無は関係無く発生します。)
 
上記の症状は会社で使用するWIN7 32bit エクセル2013です。
 
自宅にデータを持ち帰り、同様の操作を実行してみました。
WIN7 32bit エクセル2010です。
名前の管理には値の異常「#REF!」が100個以上の行数分あるのを確認しました。
同一ブック内でシートをコピーすると、全く異常が発生せず『○○(2)』(トラブル基の
シート名)がコピーできました。
もう一度実行すると
Microsoft Excel というタイトルのエラーメッセージがまず出ます。
内容は
名前’_FD1’は既に存在します。この名前はにする場合は[はい]をクリックします。移動またはコピーを行うために’_FD1’の名前を変更する場合は、[いいえ]をクリックします。
(このメッセージの下に はい(Y)、 いいえ(N)の選択ボタンがあります。)
  
コピーのシートは特に名前をつけていても全然異なる名前をエラーメッセージで指摘します。
この場合は29回以上『はい(Y)』を選択してもエラー解除できませんでした。
  
上記の選択肢で はい(Y)を選択すると名前’_FD1”の部分が全く関係の無いアンダー記号と数字の
名前のようなもので存在するとの状態のままエラー表示のループ状態になります。
 
次に

引用:
Public Declare Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long, _
    ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
  
Sub DeleteDefinedNames()
  
    Dim beforeReferenceStyle As Variant
    beforeReferenceStyle = Application.ReferenceStyle
  
    Dim timerID As Long
    timerID = SetTimer(0, 0, 100, AddressOf TimerProc)
  
    If beforeReferenceStyle = xlR1C1 Then
        Application.ReferenceStyle = xlA1
    Else
        Application.ReferenceStyle = xlR1C1
    End If
  
    Dim n As Name
    For Each n In ActiveWorkbook.Names
        If Not n.Name Like "*!Print_Area" And _
            Not n.Name Like "*!Print_Titles" Then
            n.Delete
        End If
    Next
  
    Application.ReferenceStyle = beforeReferenceStyle
  
    KillTimer 0, timerID
  
End Sub
  
Private Sub TimerProc()
  
    Dim hwnd As Long
    hwnd = FindWindow("bosa_sdm_XL9", "名前の重複")
  
    If hwnd > 0 Then
        SendKeys getRandomString(3, 20), 10
        SendKeys "{ENTER}"
    End If
  
End Sub
  
Private Function getRandomString(min As Long, max As Long) As String
  
    Dim s As String
    Dim i As Long
  
    max = Int(max * Rnd)
  
    For i = 0 To min + max
        Randomize
        s = s & Chr(65 + Int(26 * Rnd))
    Next
  
    getRandomString = s
  
End Function

 
VBAにマクロを張り付けて実行⇒上書きし、同一ブック内でコピーすると、1回目からエラーが発生してこちらもエラー解除ができませんでした(『名前の重複』も出ました。)。
それで、この内容を書きながら、もう一度状況確認の為、エクセル画面に戻りトラブルメッセージの『はい(Y)』を2回選択するとコピーできるようになっていました。
『名前の管理』内の異常「値」を確認すると100行以上あったものが10個程度に減っていました。
これを全て削除してシートをコピーするとトラブル基のシートを同一ブック内で何度コピーしても
全くエラーメッセージが出ないようになりました。
これはエクセル2010でのテストですので、今度はメインPCのエクセル2013版でテストをして、状況が解除できるかを確認したいと思います。
 

投稿日時: 18/04/19 08:17:44
投稿者: タカヒロ

お世話になります。
 
(前準備)
先のメッセージに記載しました。マクロをVBAに貼り付け、実行。
(環境:WIN7 エクセル2013)
 
(1回目)
@『名前の管理』を確認。異常「値」が100行以上あったものが4行に減っていました。
同一ブック内でシートをコピーするとエラーメッセージが出て、『はい(Y)』を選択。
 
Aもう一度同じエラーメッセージが出て『はい(Y)』を選択(メッセージ内容は、今までの’FD1’を含むメッセージのものと同じ)。
エラーメッセージが消えて通常状態となる。
 
Bもう一度、シートを同一ブック内でコピーすると、エラーメッセージが発生せず、そのままコピーができました。
 
『名前の管理』をもう一度確認。異常「値」が6行に増えていました。
 
(2回目)
・上記の(前準備)を実施。
’@ 上記@と同じ事を確認。『名前の管理』異常「値」が100以上あったのが、3行に減っていました。
   今回はこの3行を事前に削除し、『名前の管理』内の異常「値」を無しにしました。
   シートをコピー。
 
’A 問題のエラーメッセージは一切出ず。通常に同一ブック内にシートコピーを繰り返しできるようになりました。
 
 
’B 同一ブック内に問題のシートを10回連続コピーを繰り返しましたが、一切問題なく、通常にシートコピーができました。
 また、上記の作業実施後に『名前の管理』内の異常「値」が増えていないかを確認しました。
異常「値」は発生していませんでした。
 
 
ありがとうございます。
おそらく、このマクロの実行で、問題のトラブルが解消できました。
 
 
 

回答
投稿日時: 18/04/19 15:59:26
投稿者: WinArrow
投稿者のウェブサイトに移動

>おそらく、このマクロの実行で、問題のトラブルが解消できました。
  
いいえ、問題のブックに関するトラブルが解消されただけです。
 
今後の運用について、
たとえば、名前の定義で起こり得る障害を
貴方なりに整理して、掲示板に書き込んでおく
と、掲示板を見た人が参考になるのではないかと思います。
勿論、あなたの会社のルールとすることは大事
 
 
私も
名前定義のプロパティ設定で、VISIBLE=FLASEを、初めて知ったのですが、
このような仕掛けは、意図が分からないでもないが、
リスクがあると感じました。(使うべきではない)

回答
投稿日時: 18/04/19 18:54:50
投稿者: んなっと

タカヒロさん、お疲れさまでした。
これ以上詳細を書き込まなくていいと思います。
私は

引用:
 不要な名前(#REF!エラーなど)を削除する
→だめならマクロで名前を削除してから考える

という流れで回答しましたよね。
しかし...
こちらが書き込んだ事項を後回しにし、あまり関係ないことを説明する書き込みが目立ちました。
ガントチャート
http://www.moug.net/faq/viewtopic.php?t=76814
のときもそうでした。
 
今回のブックは、名前の#REF!エラーが発生する根本的な原因が他にありそうです。
その場合、今後も不具合が発生する可能性もあります。力になれなくて申し訳ありません。
「怪しいアドインがあったら、はずしてみてください」
「グラフのデータ範囲を動的に変更する名前定義はありませんか」
など、いくつかチェックしたかったのですが、もういいでしょう。
ご自分で解決してください。
 
スレッドを直ちに閉じてください。

投稿日時: 18/04/20 07:58:26
投稿者: タカヒロ

お世話になりました。
ありがとうございました。