.NETな開発日誌: 名前定義が無いExcelブックでシートコピー時に名前の定義重複のメッセージがでる!?

2017年4月6日木曜日

名前定義が無いExcelブックでシートコピー時に名前の定義重複のメッセージがでる!?


作成済みのExcelファイルをコピーして作成していた時、シートをコピーしたときにこんなメッセージが

「名前’XXX’は既に存在します。この名前にする場合は…」





みなさんは見覚え無いですか?
名前云々っていうメッセージからしてこれは「名前の定義」の件だなとピンと来たわけですよ。そこで名前の定義一覧を確認。

書式タブ→名前の管理

 しかし、一覧には何も無い!?

こんな時は何らかの原因(原因はなんだろね?)で名前の定義が非表示になっています。
非表示になった名前の定義を消すにはVBマクロを仕込むと一発。


VBEditorを起動

ALT +F11を押すとVisual Basic Editor が起動します。

開発タブを表示されている状態なら開発タブ→Visual Basic







モジュールの追加

 Alt + I + M で モジュール を追加します。もしくは挿入→標準モジュール


コードの記述

モジュール内に以下内容をコピペ。
コピペした後はVisual Basic Editorは×ボタンで閉じてOK。
Public Sub ShowNames()
    Dim name As Object
    For Each name In Names
        If name.Visible = False Then
            name.Visible = True
        End If
    Next
    MsgBox "名前の定義を開いてください", vbOKOnly
End Sub





マクロの実行

表示タブ→マクロ→マクロの表示

先ほどコピペしたShowNamesが一覧に表示されているので選択して実行。

実行すると非表示だった名前定義が表示されるので適宜削除

長年流用してるとゴミがたまっちゃうのかもしれないですね。
ちゃんとフォーマットを作っておこっと。

0 件のコメント:

コメントを投稿

人気の投稿