いろんな人が作ったExcel資料をテンプレートとして使いまわそうとして、シートをコピーした際に「名前が重複しています。」的なメッセージが連発で何度も出ることありますよね。あれ、今までずっと「なんだかわかんないけどしょうがないなぁ」と処理していたのですが、対処方法がわかりました。
下記のサイトで説明されていました。ありがとうございます助かります。
どうやら、セル範囲などに定義された名称の中に非表示になっているものがあるらしく、それを表示状態にしてやれば「数式」→「名前の管理」から一覧表示し、消すことができます。
Public Function ShowNames() Dim name As Object For Each name In Names If name.Visible = False Then name.Visible = True End If Next MsgBox "DONE." End Function
こんな感じのコードをVBA開発画面から標準モジュールを追加して記述。シートの方からマクロ実行で呼び出すと完了です。やっていることは、Excelの「Names」オブジェクトコレクションの中身をそうざらいして、VisibleがFalseのものをTrueにするというだけです。お試しあれ。
しかしなんなんでしょうね?Excelのバージョンが変わった時に仕様が変わって非表示のままGUIからは解除できなくなったのでしょうか……
入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)
- 作者: 立山秀利
- 出版社/メーカー: 講談社
- 発売日: 2012/04/20
- メディア: 新書
- クリック: 19回
- この商品を含むブログ (8件) を見る
- 作者: 田中亨
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/15
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る