• ベストアンサー

エクセルVBAで、関数で使用されていない名前だけを削除したい

Excel97,Windows98SEを使用しています。 セル範囲に名前をつけて、それを関数で引数として使っています。 よくシート削除などをするので、全く使わなくなった名前がたくさん出来てしまうのですが、 例えばブックを開いた時(Private Sub Workbook_Open()などで)に、ブック内でまったく使用されていない名前だけを削除する、というようなことはできますでしょうか? 色々考えてはみたのですが方法が思いつかず、質問させていただきました。 ご存知の方、どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#6303
noname#6303
回答No.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

takahiro_
質問者

お礼

ご回答どうもありがとうございます。 範囲に「REF!」の入った名前を削除していったらいいんですね…。気がつきませんでした! 使わせていただいています。 どうもありがとうございました。またわからないことがありましたらよろしくお願いいたします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

全く歯が立ちませんのですが、下記だけ思いつきました。 お役に立てば。 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は適当に変える。

takahiro_
質問者

お礼

ご回答どうもありがとうございます。 名前削除用の作業列を作ればよかったんですね! 今回は#2の方のを使わせていただいたのですが、また別の機会に使わせていただきますね。 またわからないことがありましたらよろしくお願いいたします。 ありがとうございました。

関連するQ&A

専門家に質問してみよう