こんばんは、堀井です。
改修に改修を重ねた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でちょっとしたツールを作っていますのでよろしければご覧ください。