
いつもお世話様です。エクセル2000での名前定義に関するVBA操作で疑問がありますのでよろしくお願い申し上げます。
(o。_。)oペコッ
以下のマクロで、あるエクセルのBOOKの名前の定義をすべて書き出してみました。
Sub Names_Check()
Dim nm As Object
Set sh = ActiveWorkbook.Worksheets.Add
For Each nm In ActiveWorkbook.Names
i = i + 1
sh.Cells(i, 1) = nm.Name
sh.Cells(i, 2) = "'" & nm.RefersTo
Next
End Sub
すると、なかにはセル範囲を参照していない名前の定義がけっこう見つかりました。
それらはよく見ると
=○○○.xls!△△マクロ
のようなマクロの名前を参照していました。
そんな名前の定義はつけた覚えが無いのですが、これは何でしょうか?
なぜそのような名前の定義が出来てしまうのでしょうか?
次にセル範囲を参照していないこれらの名前定義を削除するため下記のマクロを書いてみたところ、「実行時エラー1004 その名前は正しくありません」というエラーがでてしまいます。
どう書いたら削除できるのでしょうか?(もちろん手動では削除できます。)
Sub Del_NameRefQuestion() '不明な参照の名前定義削除
Dim nm As Object
Dim mystr As String, ans As Integer
For Each nm In ActiveWorkbook.Names
If InStr(nm.RefersTo, "$") = False Then
ans = MsgBox(nm.Name & "/" & nm.RefersTo, vbYesNo + vbQuestion, "削除しますか?")
If ans = vbYes Then nm.Delete ’ここでエラー
End If
Next
MsgBox "不明参照の名前定義削除完了", , " ( ̄ー ̄)v"
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは。
私が、この件には以前から気がついていたことです、特に、Excel2000では、ややこしい現象が起こるようです。
"不明参照の名前定義削除完了"
のエラーは、予想した方法でやってみたら、出すことが出来ました。
以前の私の回答:
http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2616426
名前を一括削除するマクロ
私は、前回を含めて、中途半端な回答をしてしまいました。
削除できないものは、名前-定義で付けられた、一種の関数式かもしれません。例えば、Ver.4マクロ関数で定義した数式とか、また、ユーザー定義関数も、そこに入り込むのかもしれません。「"不明参照の名前定義削除完了"」が出ます。
ただ、私はまだ結論的なものは出来ていません。Microsoft サポートにもなかったように思います。
ここのカテゴリの質問者の中に、この私の発言に納得するように説明をしろと強い要求されたのですが、私としても、今のところ、単にマクロでは安易には扱わないほうがよいとしているだけにとどまっています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
新生活!引っ越してから困らないように注意すべきことは?
新しい職場や学校で元気いっぱいのスタートを切るためにも快適な生活環境を整えておきたい! >>
-
名前を一括削除するマクロ
Access(アクセス)
-
エクセル2013vbaで、見えない名前の定義の「_xlfn.IFERROR」を削除したい
Excel(エクセル)
-
'Range'メソッドは失敗しました
Excel(エクセル)
-
4
excel vba 名前付きセルが存在しないとき
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
エクセルVBAで別BOOKに「名前の定義」のCopy
Excel(エクセル)
-
7
Excel 他のファイルからシートをコピー 名前の定義を引き継がない。
Excel(エクセル)
-
8
VBAでエラーメッセージが出ないようにしたい
PowerPoint(パワーポイント)
-
9
VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
Excel(エクセル)
-
10
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
11
Excel VBA セルの名前があるか無いかを知るには?
Visual Basic(VBA)
-
12
参照先のブックを開かずに内容をコピーしたい
Excel(エクセル)
-
13
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
14
Excelでセルに名前を定義したいのですが
Excel(エクセル)
-
15
エクセルの名前定義の一括削除の方法
Excel(エクセル)
-
16
別のシートから値を取得するとき
Visual Basic(VBA)
-
17
エクセルの名前の定義を他のファイルにエクスポートする方法?
Excel(エクセル)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
VBA 実行時エラー 1004 マクロが使用できないエラーの原因がわかりません
Visual Basic(VBA)
-
20
チェックボックスの文字色の変え方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
写真の定義において、商体の要...
-
5
1+1はなぜ2なのか?
-
6
べき乗
-
7
“半日”って何時間のことなんで...
-
8
マイナス7は素数ですか?
-
9
ACCESS IIF関数 複数条件の設...
-
10
日本語 ことば ひとまわり ふた...
-
11
大学受験の数学で使う記号など...
-
12
複素数は順序体でない
-
13
0に限りなく近い数は存在するの?
-
14
えっ!「来週」の使い方…
-
15
1未満と1以下の違い
-
16
ヘシアンが0の場合どうやって極...
-
17
√ ルート 定義
-
18
無限から無限を引いたら何にな...
-
19
開球 凸集合 証明
-
20
交換法則が成り立って、結合法...
おすすめ情報