Excelでシートをコピーすると出続ける「名前 ‘~~~’ は既に存在します。この名前にする場合は…」を撲滅するぞ!

こんばんは、堀井です。

改修に改修を重ねたExcelファイルのシートをコピーしようとすると出るこれ↓、本当に厄介ですよね。

名前 ‘~~~’ は既に存在します。この名前にする場合は [はい] をクリックします。移動またはコピーを行うために ‘~~~’ の名前を変更する場合は、[いいえ]をクリックします。

これで何十回EnterキーなりYを押し続けたことか!!!

対処方法としては「数式」タブから「名前の管理」を押して出てくる名前定義を削除すればいいんですけれど・・・

載っていないんですよね・・・。

理由は

なのですが、じゃあどうやれば表示されるんだ?という話ですよね。

この記事ではExcelマクロを使って表示させる方法を紹介します。


Excelマクロ(VBA)を触ったことがない方

以下の画像の通り「開発」タブが表示されている方はソースコードまで飛ばしてください。

1.「ファイル」タブを選択して「オプション」をクリックする

    2.「リボンのユーザー設定」を開いて、「開発」タブにチェックを入れる

    チェックを入れたらOKを押してください。

    3.ツールバーに開発タブが表示されるので、「Visual Basic」を選んでVBE(Visual Basic Editor)を開く

    4.以下の画像に近い画面が表示されるので、「挿入」→「標準モジュール」を選択する

    5.エディター画面が開く


    ソースコード

    エディターを開いたら以下のコードを貼り付けます。

    Option Explicit
    
    '非表示になっている名前定義を表示する.
    Public Sub dispNameDefinition()
        Dim n As Object
        For Each n In Names
            n.Visible = True
        Next
    End Sub

    ▶ボタンを押す

    ▶ボタンを押した時、以下の画面が出てきた人は「実行」を押してください。

    これで非表示になっている名前定義が表示されましたので、改めて「数式」タブから「名前の管理」を押してみましょう。

    こんな感じで機密情報がめちゃくちゃ見つかることも、まああります。

    あとはShiftキーを押しながら最初と最後をクリックすると全選択できますので、削除(D)を押してOKで完了です。


    以上です。

    嫌らしい仕様ですね!!

    GitHubの使い方が分かっていることが前提ですが、他にもVBAでちょっとしたツールを作っていますのでよろしければご覧ください。

    https://github.com/hooooooooolly/vba-utils

    コメントする