Excel 2003 のシートコピー時に出る HTML_Control の名前の警告を消す
2010-11-3 23:52
ある Excel のファイルのシートをコピーしようとしたら次のようなメッセージが出ました。
移動またはコピーしようとしている数式またはシートには、 移動またはコピー先のワークシートに既にある名前 'HTML_Control' が含まれています。この名前を使用しますか? ・コピーまたは移動先のシートに定義されている名前を使用する場合は、 [はい]をクリックします。 ・数式またはワークシートで参照する範囲の名前を変更する場合は、 [いいえ]をクリックし、 [名前の重複]ダイアログ ボックスに新しい名前を入力します。
Microsoft のサイトで調べても、[挿入]-[名前]-[定義]で出てくる定義を削除するという方法が出ています。しかし ‘HTML_Control’ という名前は定義されていません。
いろいろ調べると、同じようなエラーが出ている人が多数いましたが、どうやらマクロで削除するしかないようです。
Alt+F11 で Visual Basic Editor を起動し、[挿入]-[標準モジュール]で Module1 という標準モジュールができたら次のコードを入力します。
Sub DeleteObj() Dim objName As Name For Each objName In ActiveWorkbook.Names objName.Delete Next objName End Sub
このファイルを保存して、Excle ブックに戻り、Alt + F8を押して DeleteObj マクロを実行します。
これでブック中のすべてのオブジェクトが消えますので、シートのコピーの際にエラーが出なくなります。
一度削除してセーブしたら、Visual Basic Editor で Module1 を削除しても大丈夫です。
もちろん意図的にオブジェクトを利用している場合に不具合が出る可能性もありますので、かならずバックアップを取ってから実施してください。くれぐれも自己責任でお願いします。
Sub DeleteObj()
Dim objName As Name
For Each objName In ActiveWorkbook.Names
If objName.Name = “HTML_Control” Then
objName.Delete
End If
Next objName
End Sub
手元にExcel2007しかないので、2003では試していないのですが、これならHTML_Controlだけ削除できると思います
コメント by pup — 2010-11-4 20:17
フォロー有難うございます。確かにこの方法の方が別のオブジェクトを削除する心配はありませんね。
実は私の場合は HTML_Controlの他に ‘a’ というオブジェクトのエラーも同様に出ていたので、まとめてすべて削除してしまいました。
コメント by fumi — 2010-11-5 21:45