Excel (VBA)

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

 
(Windows 10 Home : Excel 2016)
「名前の重複」というエラーが出るようになった
投稿日時: 17/12/11 21:37:40
投稿者: はじめて

お世話になります。
 
エクセルのテンプレートの中にあった「万年カレンダー」を使用しマクロを付けて12か月分のシートを作成ししました。マクロを付加して作成したときはエラーは出ていませんでしたが最近再度このファイルをシート1の内容をシート2へ移動コピーしようとすると次のようなエラーメッセージが出るようになって困っています。(マクロなしでも同じです)
どなたかご教示ください。
*********************************
エラーの内容
名前の重複
おなじ名前がリンク先のシートに既に存在します
*****************************************
ただ、同一のパソコンにIDをかえて2人で使用していますが、このエラーが出るのは私のIDで立ち上げた方しか出ません。
よろしくお願いいたします。

回答
投稿日時: 17/12/11 22:05:13
投稿者: WinArrow
投稿者のウェブサイトに移動

>シート1の内容をシート2へ移動コピー
「シート1」と」「シート2」は、別のブックでしょうか?
 
若し、別ブックだとしたら、
シート2側に既に同じ名前が登録さえれているということです。
 
シート2が入っているブックは、どのように作成しましたか?
 
>移動コピー
コピーする側は、テンプレートなんでしょ?
なぜ、移動するのでしょうか?
普通に複写(コピペ)では駄目なんですか?

投稿日時: 17/12/11 22:14:16
投稿者: はじめて

WinArrow さん 早速のご教示ありがとうございます。
 
先ず訂正をさせていただきます。IDの異なる方でもエラーになります。申し訳ありません。
***
お答えします。
同一のブックに作成しています。以前のテンプレートは1か月分だけでしたので、11か月分追加して12か月分を作りました。いろんな予定を入れるには12か月分あった方がいいと思ったからです。増やす方法は「CTRL]を押したまま右方向へドラッグして作りました。

投稿日時: 17/12/11 22:20:13
投稿者: はじめて

WinArrow さん
 
現在テンプレートに登録してあるカレンダーをテストしましたところ、「CTRL]を押したままドラッグしてもエラーは出ず追加は何か月分でも可能でした。

回答
投稿日時: 17/12/12 02:19:09
投稿者: もこな2

とりあえず、エラーが出てるブックで
[数式]-[名前の管理]ってすすめて、ほんとに名前がかぶってないか確認するとかはどうでしょうか?

投稿日時: 17/12/12 07:57:22
投稿者: はじめて

もこな2 さん ありがとうございます。
** 確認してみます  **

回答
投稿日時: 17/12/12 08:22:37
投稿者: WinArrow
投稿者のウェブサイトに移動

問題を整理してみましょう
 
「テンプレート」と「今回、操作しているブック」とは別物ですか?
そこを明確にしなければ、
先に進めないような気がします。
 
以下は、知識としておぼえておいた方がよいことです。
 
「名前」の設定情報は、
ブックレベルとシートレベルの両方の設定方法があります。
勿論
ブックレベルで設定した「名前」は、ユニークでなければいけません。
シートレベル設定した「名前」は、別シートと重複してもOKです。
 
そこで、別ブックからシートを複写した時、別ブックで設定した「名前」が、
すべて複写されます。複写シートで使用/未使用関係ありません。
 
今回の症状からするとブックレベルで設定した「名前」と推測しています。
 
従って、2つ目のシートを複写した時、「ダブリが発生した」ものと思います。
 
同一ブック内でシートを複写しても、ダブルは発生しません。
 
それから
[Ctrl]を押しながら、ドラッグ・・・・この操作は、「移動」ではなく「複写」です。
 
もう一つ、期を付けた方がよいことを例で説明します。
Aブックの「Sheet1」をBブックに複写sる例
Aブックの「Sheet1」で[Sheet2](「Sheet1」以外)を参照している数式があった場合、
Bブックには、「AブックへのSheet2」へのリンク情報」として取り込まれてしまいます。
仮に「Aブック」を削除してしまうと、参照先無の状態となり「#REF」エラーとなります。
 
というわけで、他ブックからのシート複写には、思わぬ落とし穴がありますので注意しましょう。
 
 

投稿日時: 17/12/12 08:28:58
投稿者: はじめて

もこな2 さん 
 
ご指示のようにやってみましたが、開いたのは初めてでこの後どうしたらよいかわかりません。
開いたら22項目が出てきました。中で下記の1件がダブっていました。
 
 
名前        値       参照範囲    範囲   コメント
 
TitleRegion    ="1月"$A$5     ブック

投稿日時: 17/12/12 08:41:05
投稿者: はじめて

 WinArrow さん
 
ご指定のブックの件ですが
Excelを立ち上げた際、テンプレートが表示になりますが、その中に「万年カレンダー」というのがありましたので、そこをクリックして「作成」へ進み取り込みました。そのテンプレートは1か月分だけでしたので一度は12か月分作ることができ保存しています。友人に勧めるため1か月分を再度月数を増やそうと思い作業を進めたのですがエラーが発生したのです。このエラーが出ますとExcelは閉じることができなくなり強制的にパソコンを閉じるしかありません。
このような状況です。よろしくお願いします。

回答
投稿日時: 17/12/12 10:27:09
投稿者: もこな2

私の環境で名前の重複が再現できなかったのでちょっと想像込みの回答になってしまいますが、WinArrowさんも仰っているように、名前にはブック全体から参照できるものと、そのワークシートでのみ参照できるものの2種類があります。ご提示のものを見ると、範囲が「ブック」になっているので、ブック全体から参照できるタイプの名前が定義されているということになります。
 
ここから想像ですが、
ダブっているもう一つの「TitleRegion」と比べて、どの項目もまったく一緒ならば、「名前の管理」でどっちか削除してしまえばよいとおもいます。
問題は、どの項目かが違っている場合ですが、その場合は、使ってない(使わない)方を特定して、そちらを削除しなければいけないということになります。
それには、数式やコード上のどこでどのように「TitleRegion」を使用しているのかを調べないとわからないので、とりあえずコードや、シートの数式に「TitleRegion」を参照しているものがないか、検索してみてください。(検索対象を、カレントプロジェクトにしたり、シートを作業グループにしてから「TitleRegion」を検索するとよいとおもいます。)
見付かったら、「TitleRegion」をどのように参照しているかをしらべて、必要のない方を「名前の管理」で削除すればよいはずです。なお、どちらを削除すればよいか、判断が付かない場合は、参照しているコードや数式を提示して、別途相談されるとよいかと思います。
 
※「名前の管理」で名前の定義を削除する前に、失敗することを考えてバックアップを取ることを推奨します。
 
このほか、モーグ内に「名前の定義」に関するトピックがありましたので、参考にURLを貼付します。
セルに名前を定義する(Nameプロパティ)
https://tonari-it.com/excel-name-definition/

投稿日時: 17/12/12 10:57:45
投稿者: はじめて

もこな2 さん
ありがとうございます。
 
もこな2 さんがおしゃるようにExcel16の中に万年カレンダー(イオンテーマ)というのがオンラインテンプレートとして現在掲載されてます。これを使って作成したカレンダーは今回のエラーは出ないのです。Windowsの更新前に掲載されていた万年カレンダーにエラーが発生するようになったのです。私には難題ですが皆様からのご教示を受けながらやってみます。
 
 

投稿日時: 17/12/12 12:56:47
投稿者: はじめて

WinArrow さん, もこな2 さん  本当にありがとうございました。
 
エラーメッセージは次の4項目が出ました。
1 "calendar" は既に存在します。この名前を使用する場合は「はい」をクリックします。
  移動またはコピーを行うためにcalendarの名前を変更する場合は「いいえ」をクリックします。
2 "firstdate"・・・以下同じ
3 "month"・・・以下同じ
4 "MonthToDisplayNumber"・・・以下同じ
結論は、すべて「はい」でプログラムを閉じました。(関数が入っているのを考慮したため。)
そのファイルにマクロを張り付けて動作確認を確認いたしました。
原因等はわかりません。
ここまで親切丁寧にご教示いただきましたことに熱く重ねてお礼申します。
******** ありがとうございました ********