質問編集履歴
1
①```vbaを追加しました。 ②転記ミスによるケアレスミスを修正いたしました。 ③checkRangeValueのfirEach文が不要であったため、削除いたしました
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
getName(nm.Name) = 1 _部分でrangeのglobalエラーが表示されてしまっています。
|
10
10
|
|
11
11
|
### 該当のソースコード
|
12
|
-
|
12
|
+
```vba
|
13
13
|
Public Sub DeleteNames()
|
14
14
|
'非表示となっている名前の定義を表示
|
15
15
|
DisplayNames
|
@@ -19,7 +19,7 @@
|
|
19
19
|
'名前の定義の「値」、「参照範囲」に特定の文字列を含んでいた場合、該当する名前の定義を削除
|
20
20
|
|
21
21
|
For Each nm In ActiveWorkbook.Names
|
22
|
-
If InStr(nm.Value, "#REF") > 0 _
|
22
|
+
If InStr(nm.Value, "#REF") > 0 OR _
|
23
23
|
getName(nm.Name) = 1 _
|
24
24
|
Then
|
25
25
|
nm.Delete
|
@@ -61,19 +61,16 @@
|
|
61
61
|
Public Function CheckRangeValue(r As String)
|
62
62
|
Dim val
|
63
63
|
Dim result As Integer
|
64
|
-
result = 0
|
65
|
-
For Each val In r
|
66
64
|
If InStr(val.Value, "#REF") > 0 _
|
67
65
|
Then
|
68
|
-
|
66
|
+
result = 1
|
69
67
|
End If
|
70
|
-
Next val
|
71
68
|
CheckRangeValue = result
|
72
69
|
End Function
|
70
|
+
```
|
73
71
|
|
74
72
|
|
75
73
|
|
76
|
-
|
77
74
|
### 試したこと
|
78
75
|
|
79
76
|
処理の中にdebugを張ったりしてみましたが、名前の定義の名前部分が正しく取得できていることは確認できました。
|