ちょっと話題の記事

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

2013.05.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Excel のシートをコピーするときに、以下のようなダイアログを見たことがありませんか?

excel_name01

このようなダイアログで「いいえ」を選択しても「あああ」や「aaa」など、見覚えのない名前が次々に表示されてしまい、シートをコピーするのがいちいち大変です。
犯人はどうやら「名前の定義」だ!と思い、名前の定義の一覧を見てみます。

excel_name02

しかしここにも居ませんでした。。
少し調べてみると非表示になっている名前の定義が存在することが分かりました!
ということでこの記事ではシートで非表示になっている名前の定義を消す方法をメモとして残しておきたいと思います。

手順

1. Visual Basic Editor を起動する

まずは Alt + F11 で Visual Basic Editor を起動します。

excel_name03

2. Module の追加

次に Alt + I + M で Module を追加します。

excel_name04

以下のコードをコピーして貼り付けます。以下はすべての非表示の名前の定義を表示させる処理です。

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

ここまでできたら Visual Basic Editor を閉じてOKです。

3. マクロの実行

次に上記で作った処理を実行します。メニューから「表示」タブを選び「マクロ」>「マクロの表示」を選びます。

excel_name05

実行できる処理が一覧で出てくるので VisibleNames を選んで「マクロの実行」をクリックします。以下のダイアログが表示されたら処理完了です。

excel_name06

名前の定義一覧を見てみると表示されると思います!あとはここから削除してください。

excel_name07

まとめ

以上、ちょっとした小技でした。Excel を納品する前にチェックしておくと良いポイントと合わせてこちらもチェックしておくようにすると良いと思います。