misc.log

日常茶飯事とお仕事と

Excelでシートコピー時に謎の名称が重複するという警告が多発する場合

いろんな人が作ったExcel資料をテンプレートとして使いまわそうとして、シートをコピーした際に「名前が重複しています。」的なメッセージが連発で何度も出ることありますよね。あれ、今までずっと「なんだかわかんないけどしょうがないなぁ」と処理していたのですが、対処方法がわかりました。

下記のサイトで説明されていました。ありがとうございます助かります。

dev.classmethod.jp


どうやら、セル範囲などに定義された名称の中に非表示になっているものがあるらしく、それを表示状態にしてやれば「数式」→「名前の管理」から一覧表示し、消すことができます。

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逆引き辞典パーフェクト 第3版

Excel VBA逆引き辞典パーフェクト 第3版