この記事では「エクセルにて名前の管理が勝手に入る(増える)原因と対策」について解説していきます。
これらの原因としては
・シートのコピー
・ブック間のシートのコピー
・仕様上のバグ
が考えられます。
実際のサンプルを用いて、原因と対策についてみていきましょう。
エクセルにて名前の管理が勝手に入る(増える)原因と対策1【名前の定義:シートのコピー】
エクセルにて名前の定義が入ったシートをコピーすると一緒に名前の定義までコピーされてしまいます。
「名前の定義」が入ったシートを4つコピーし、「名前の管理」を開くと「名前の定義」が4つ増えているのが分かります。
不要な名前の定義を選択し、画面上の「削除」を押して「閉じる」を押しましょう。
これで、増えてしまった「名前の定義」を消すことができます。
これでシートのコピーによって「名前の定義」が勝手に増える場合の原因と対策の解説は以上です。
エクセルにて名前の管理が勝手に入る(増える)原因と対策2【名前の定義:ブック間のシートのコピー】
上述では名前の定義が入ったシートをコピーすることで、一緒に「名前の定義」まで増えてします場合と原因と対策を解説しましたが、ブックをまたいだシートのコピーを行う場合でも、「名前の定義」はコピーされてしまいます。
サンプルではエクセルブックを2つ開き、シートをブック間でコピーをしています。
「名前の管理」を開くと「名前の定義」までコピーされているのが分かります。
他のブックからコピーしたシートを削除します。
同一ブック内でシートのコピーをした場合は、そのシートを削除すると、名前の定義も一緒に消えるのですが、他のブックからコピペしたシートに名前の定義が入っていた場合は、シートを削除しても消えずに、参照範囲がエラーになったまま残ってしまいます。
参照範囲がエラーになっている「名前の定義」を選択し、画面上の「削除」ボタンをクリックして削除しましょう。
これで、ブック間でのシートのコピーで「名前の定義」がコピーされてしまう原因と対策は以上です。
エクセルにて名前の管理が勝手に入る(増える)原因と対策3【名前の定義:仕様上のバグ】
上述ではシートのコピーとブック間のシートのコピーで「名前の定義」まで増えてしまう場合の原因と対策について解説しましたが、エクセルの「仕様上のバグ」でも「名前の定義」が増えてしまう場合があります。
実は、フィルターなどを使うと、バックグラウンドで「名前の定義」が非表示で定義づけされている場合があります。
リボンのファイルタブを開いて、「情報」、「問題のチェック」の順にクリックしていきます。
選択メニューから「ドキュメント検査」を選びます。
「非表示の名前」にチェックを入れて、「検査」をクリックします。
非表示の名前が見つかりました。バックグラウンドで名前が定義づけられていたわけです。
何かしらのバグで非表示の名前が表示されたときは、上述のでも解説した通りに、「名前の管理」で「削除」ボタンを押して、消してしまいましょう。
名前の定義が非表示になっている場合は以下のVBAのコードを標準モジュールにコピー&ペーストして実行させましょう。
Sub 名前の定義を再表示()
Dim NAM As Object
For Each NAM In Names
If NAM.Visible = False Then
NAM.Visible = True
End If
Next
End Sub
VBAのコードを解説していくと、
Sub 名前の定義を再表示()
・マクロの表示名です
Dim NAM As Object
・変数NAMをオブジェクトとして宣言しています。
For Each NAM In Names
・ForEach文を使って、名前を順に取り出して変数NAMに代入します。
If NAM.Visible = False Then
・もし、名前が非表示だった場合
NAM.Visible = True
名前を表示せよ
End If
条件分岐の終わり
Next
繰り返し終了
End Sub
VBAのコードの終了
となっています。
コードを実行したことで、非表示になっていた「名前の定義」を表示させることができました。
選択して削除しましょう。
以上で仕様上のバグで名前の定義が残ってしまっている場合の原因と対策が終了です。
まとめ エクセルにて名前の管理が勝手に入る(増える)原因と対策
この記事では「エクセルにて名前の管理が勝手に入る(増える)原因と対策」について解説していきました。
原因としては「シートのコピー」、「ブック間のシートのコピー」、「仕様上のバグ」
が考えられます。
いずれの場合も、不要な名前の定義が出てきたら「名前の管理」の「削除」ボタンで削除しましょう。
エクセルのさまざまな処理を理解し、業務に役立てていきましょう。