- ベストアンサー
Excel名前定義なぜのこる
他社からExcelファイルを頂きシートをコピー使用としたところ エラーとなりコピー出来ませんでした。 調べてみたところExcelの名前定義が残っていた為エラーとなっていました。 そこで数式→名前の管理から名前定義を消したのですが それでもシートのコピーが出来ず さらに調べてみたところ VBAを使い見えない名前定義を見えるようにして削除を行ったところ シートのコピーが出来ました。 質問1 Excelの名前定義なぜ見えない物が残るのでしょうか? 質問2 VBAを使う以外に名前定義が残っているというのが分かる方法がないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「Printarea(印刷範囲)などの設定時にExcelが自動で定義する名前もあります。」 http://www4.synapse.ne.jp/yone/excel2010/excel2010_name_teigi.html より ーー [Excel] シートで非表示になっている名前の定義を消す方法 http://dev.classmethod.jp/tool/excel-delete-name/ >Excelの名前定義なぜ見えない物が残るのでしょうか 操作者が直接シートに対して操作した名前定義はVisibleだが、Visible でない名前定義が行われるケースがあるということらしい。 ただVBAで(手操作ではなくて) Sub test01() Worksheets("sheet1").Range("A6").Name = "xxx" End Sub とすると名前一蘭にxxxは出る。 ーー Sub test01() Worksheets("sheet1").Range("A15").Name = "yyy" Range("a15").Name.Visible = False End Sub とするとyyyは出ない。こんなことは、わざわざする必要はないと思うが。 しかし Sub test02() Worksheets("sheet1").Range("yyy") = 11 End Sub とするとA15は11になるので、定義はされているようだ。 そういうものをVisibleにする方法はVBAでしかないのかも。 ーー ブックレベルの名前とアクティブシートのシートレベルの名前だけが表示されます。 ということで他シートのシートレベルの名前定義は出てこない。 ーー 参考記事 http://www.ichikura.com/cgi-bin/tbbs/tbbs.cgi?cmd=treeshow&msgno=2663&parent=2663 No11851のあたり。 ーー 余りポピュラーな課題じゃなくて、情報が少なく、歯切れが悪いですが、参考になれば。上記で間違っているところがあれば、すみません。
お礼
解答ありがとうございます。 シートをコピーしようとしたらエラーとなりましたので 印刷範囲で作られた名前定義では無いような気がします。 (名前定義の参照先をみたら外部ファイルになっていたので) マクロで名前定義を非表示にされていた可能性が高い気がします。 今回はたまたま名前定義が非表示にされているのに気がついて消す事ができましたが 次回以降他社からこういったファイルが送られてきたら送り主に伝え修正して頂く方法をとりたいと思います。