質問するログイン新規登録

質問編集履歴

1

①```vbaを追加しました。 ②転記ミスによるケアレスミスを修正いたしました。 ③checkRangeValueのfirEach文が不要であったため、削除いたしました

2018/09/15 03:21

投稿

shun56
shun56

スコア7

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
- restult = 1
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を張ったりしてみましたが、名前の定義の名前部分が正しく取得できていることは確認できました。