技術・開発

【Excel】非表示の名前の対処方法

2019年6月23日

設定方法をすぐに見たい方はこちら

ブックの検査で 「非表示の名前」 が削除できない

Excelを他会社などに共有する際に、ブックの検査を使って
社外に漏れたらダメな情報などがないかチェックする機能があります。

Excelの情報タブよりブックの検査より

検査を実行後、「ドキュメントのプロパティと個人情報」などいくつかの項目は削除できますが、「非表示の名前」などいくつかの項目は自動的に削除できません。

「ヘッダーとフッター」は削除できるが
「非表示の名前」は削除できない

 下記文言と「詳細情報」ボタンが表示されるだけ。。。

非表示の名前が見つかりました。非表示の名前は自動的に削除することはできません。
手動で削除してからもう一度ファイルを検査してください。

2019年6月23日時点で推奨される解決策にある
作業中のブックで非表示に名前を削除するマクロ
を参照しようとしても404エラーが表示されます。

「 作業中のブックで非表示に名前を削除するマクロ 」をクリックしても404エラーが表示される

どうしろと。。。

名前の管理

「非表示の名前」は名前の管理で確認できるはずだが・・・

「非表示の名前」は本来、名前の管理で保存されているデータなので
「数式」タブにある定義された名前をクリック

名前の管理
より表示できるはずなのですが、非表示扱いのため、表示がされません。

名前の管理一覧には何も表示されない

非表示の名前を表示させる

「名前の管理」に表示されていない名前を表示させるにはマクロを使って表示させるしか方法がないようなので表示させることにします。

マクロエディタの表示

Excel画面にて、[alt]と[F11]を同時に押下すると
Microsoft Visual Basic for Applicationsが表示されます。

Microsoft Visual Basic for Applications

Module(コードエディタ)の表示

[Alt]⇒[i]⇒[m]の順にキーを押下するとModule(コードエディタ)が表示されます。

Module1(コードエディタ)

コードの記述

Module1に下記コードを記述します。
関数名はお好みで

Public Sub VisibleNames()
    Dim name As Object
    For Each name In Names
        If name.Visible = False Then
            name.Visible = True
        End If
    Next
    MsgBox "すべての名前の定義を表示しました。", vbOKOnly
End Sub

コードの実行

Microsoft Visual Basic for Applications の上部タブにある再生(▶)ボタンまたは[F5]ボタン押下よりマクロを実行します。

[F5]ボタン押下するとマクロ一覧が表示されるので先ほど作成したマクロを実行します

実行後「すべての名前の定義を表示しました。」と表示されればOKです。

実行後「すべての名前の定義を表示しました。」と表示される

[名前の管理]の確認

再度名前の管理を確認すると非表示となっていた名前が表示されるようになっているかと思います。
表示された名前から不要なものを消していくだけです。
※名前の管理の表示方法はこちらより

非表示されていた名前が表示される

xlsxファイルはマクロ消してくれる

xlsファイルの場合、今回削除したマクロを消す必要があります。
しかし、xlsxの場合はマクロの保存ができないため、保存する際に「次の機能はマクロなしのブックに保存できません」と表示されます。
そのため、警告画面にて「はい」を選択するとマクロ削除して保存してくれるので便利です。
(マクロありでExcelを保存したい場合はxlsmで保存する必要があります。)

マクロありのまま保存すると警告表示される。(xlsxの場合)

終わりに

昔から使っているxlsxだと名前の管理が残っている場合が多いような気がします。

印刷範囲が非表示扱いで保存されているせいだったり、語り継がれたシートだったために「あああ」とか「aaa」とかの名前が多数残ってたりします。

また、ファイルサーバ名やパス情報が表示されていることがあるため、意図せず情報流出している場合があります。

ブックの検査は昔からありますが、社外に提出する際は非表示の名前を消してから提出しようと思います。

参考

[Excel] シートで非表示になっている名前の定義を消す方法

-技術・開発
-, , ,