エクセルの話になるが少々はまったので、、、
シートをコピーするときに下記のエラーが表示されることがある。
この現象は正確にはエラーではない。シート上で定義されていた名前が、シートをコピーするときに複製される。しかし名前はブックでユニークである必要があるために名前変更を促すメッセージが表示される。例えば名前が100個登録されていたら100回ポップアップが表示されるために操作として手間がかかる。
この状態になった時にはひたすら”はい”を押して”名前”をコピーするか、定義されている名前をすべて削除する。削除方法はまず、エクセルをタスクマネージャからkillする。その上で該当ブックを開き→数式→名前の管理で、名前の管理を表示する。ここからすべてを削除すればよい。
さてこれはよく知られている現象であったが今回はこの名前の管理に表示されないにも関わらず、該当のメッセージが表示された。いろいろ調べたところ名前が非表示の属性を持っている場合には名前の管理には表示されないことが分かった。
対応策はマクロを使って名前を表示させてから、名前の管理から削除すればよい。
まず[alt]+[F11]でVBエディタを起動する
モジュールを挿入して下記のコードを記述する。
' Module to remove all hidden names on active workbook
Sub Remove_Hidden_Names()
' Dimension variables.
Dim xName As Variant
Dim Result As Variant
Dim Vis As Variant
' Loop once for each name in the workbook.
For Each xName In ActiveWorkbook.Names
'If a name is not visible (it is hidden)...
If xName.Visible = False Then
xName.Visible = True
End If
' Loop to the next name.
Next xName
End Sub
このマクロを実行すると、名前の管理に名前が表示される。あとは同じように削除すればよい。