[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『名前定義の削除について』(Rin)
お世話になります。 シートをコピーする際に出力されるメッセージを消すために下記マクロを 実行したのですが、エラーが出力されて自力では解決できなかったので こちらで質問させていただきます。
※ 参考にした過去ログは [[20071111234547]] に記載されていたコードです。 コードを標準モジュールに貼り付けて実行しています。
Sub 名前の定義削除()
'ブック内のすべての名前の定義を削除する
j = ThisWorkbook.Names.Count For i = j To 1 Step -1 ThisWorkbook.Names(i).Delete Next End Sub
上記マクロを実行した所、『ThisWorkbook.Names(i).Delete』 の部分で 『実行時エラー'1004': その名前は正しくありません。』とメッセージが 出力されます。 『ThisWorkbook.Names(i)』に名前が取得されている所までは、 確認できているのですが、消すことができないようです。
どなたか消し方をご存知の方がいらっしゃいましたら、ぜひご教示ください。
OSはXP、エクセルは2003を使用しております。
「挿入」―「名前」―「定義」で、どんな名前が定義されていますか? (独覚)
独覚さま
>「挿入」―「名前」―「定義」で、どんな名前が定義されていますか?
全シートを確認いたしましたが、何も設定されていませんでした。
他に何か私でも確認できることがありますでしょうか?
(Rin)
それではVBエディタで「表示」―「イミディエイトウィンドウ」でイミディエイトウィンドウを表示させ、 そこに「?ThisWorkbook.Names.Count」と入力しEnterを押してみてください。
0で無い数値が表示された場合は「?ThisWorkbook.Names(数値).Name」と数値の部分を1から上記で表示された数値まで当てはめて Enterを押して表示される内容を確認してみてください。
例 「?ThisWorkbook.Names.Count」で3と表示されたら 「?ThisWorkbook.Names(1).Name」「?ThisWorkbook.Names(2).Name」「?ThisWorkbook.Names(3).Name」 とそれぞれ入力してEnterを押す。 (独覚)
独覚さま
ご指示の内容を実行してみました。
「?ThisWorkbook.Names.Count」では『1』 「?ThisWorkbook.Names(1).Name」では『』が表示されました。
私自身はこのような定義をした覚えがないのですが、エクセルで勝手に定義される ものなのでしょうか。
(Rin)
少なくとも名前には使えない文字のためブック内にゴミがあるか壊れかけている可能性もあります。
新たにブックを作りなおした方がいいかもしれません。
イミディエイトウィンドウで「?ThisWorkbook.Names(1)」とするとその名前が設定されているセル範囲およびシート名が 表示されますのでそこで表示された以外のシートを新しいブックに移送、「名前」が存在するシートは作り直しで、 ブックの作り直しをしてはどうでしょうか? (独覚)
開いて修復する(E) で開くと 削除出来るように成るかもしれません。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.