名前付き範囲のアドレスを変更ValidationChanger
するメソッドを持つクラスがあります。しかし、私のコードは予期せず新しいアドレスを二重引用符で囲んでいます。changeNamedRangeAddress
RefersTo
ここでのクラス定義ValidationChanger
:
'ValidationChanger
Sub changeNamedRangeAddress(bk As Workbook, rangeName As String, newAddress As String)
bk.Names(rangeName).RefersTo = newAddress
End Sub
TestRange
シート内のアドレスを参照する、という名前の範囲でテストしInstructions
ますInstructions!$A$133:$A$138
。私のテストでは、アドレスをInstructions!$A$133:$A$139
次のように変更する必要があります。
Sub testValidationChanger()
Dim vc As New ValidationChanger
Dim bk As Workbook
Set bk = Workbooks("test.xlsm")
Debug.Print bk.Names("TestRange").RefersTo
vc.changeNamedRangeAddress bk, "TestRange", "Instructions!$A$133:$A$139"
Debug.Print bk.Names("TestRange").RefersTo
End Sub
出力は次のとおりです。
=Instructions!$A$133:$A$138
="Instructions!$A$133:$A$139"
新しいアドレスが二重引用符で囲まれている理由(アドレスではなくテキスト文字列として機能する)はありますか?