- ベストアンサー
エクセルVBAで、関数で使用されていない名前だけを削除したい
Excel97,Windows98SEを使用しています。 セル範囲に名前をつけて、それを関数で引数として使っています。 よくシート削除などをするので、全く使わなくなった名前がたくさん出来てしまうのですが、 例えばブックを開いた時(Private Sub Workbook_Open()などで)に、ブック内でまったく使用されていない名前だけを削除する、というようなことはできますでしょうか? 色々考えてはみたのですが方法が思いつかず、質問させていただきました。 ご存知の方、どうぞよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Excel 2000 で動作確認しました(97 では行っていません)。 もしバグっていても責任は終えませんので、 使用するとしたら、事前にテストをお願いします。 Private Sub Workbook_Open() Dim n As Object For Each n In ActiveWorkbook.Names If n.RefersTo Like "*REF!*" Then n.Delete Next n End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
全く歯が立ちませんのですが、下記だけ思いつきました。 お役に立てば。 Sub test05() For i = 1 To Names.Count n = ActiveWorkbook.Names(i).Name m = ActiveWorkbook.Names(i).Value Cells(i, "c") = n Cells(i, "d") = "'" & m Next i End Sub ブック内の名前リストと範囲が紙に打ち出せます。 最悪サイトチェックで不要分削除するとか。 列c、dは適当に変える。
お礼
ご回答どうもありがとうございます。 名前削除用の作業列を作ればよかったんですね! 今回は#2の方のを使わせていただいたのですが、また別の機会に使わせていただきますね。 またわからないことがありましたらよろしくお願いいたします。 ありがとうございました。
お礼
ご回答どうもありがとうございます。 範囲に「REF!」の入った名前を削除していったらいいんですね…。気がつきませんでした! 使わせていただいています。 どうもありがとうございました。またわからないことがありましたらよろしくお願いいたします。