1

Excel 2003 (VB5.5) でマクロを使用して文字列 (たとえば、すべての数字) を置き換えようとしています。今、私はこのコードを持っています:

Sub DeleteDigits()
Dim hLink As Hyperlink
Dim wSheet As Worksheet

For Each wSheet In Worksheets
    For Each hLink In wSheet.Hyperlinks
        hLink.Address = regEx.Replace(hLink.Address, "\d", "")
    Next hLink
Next wSheet
End Sub

参照で正規表現を確認しましたが、hLink.Addressがオブジェクトではないというメッセージを取得する方法がわかりません。これは、表示されるエラーです。

4

1 に答える 1

1

Replace3 つの引数はサポートされていません。最初にプロパティを介してパターンを設定する必要があります。そのようです:

Sub DeleteDigits()
    Dim hLink As Hyperlink
    Dim wSheet As Worksheet
    Dim regEx As New VBScript_RegExp_55.RegExp

    For Each wSheet In Worksheets
        For Each hLink In wSheet.Hyperlinks
            regEx.Pattern = "\d"
            hLink.Address = regEx.Replace(hLink.Address, "")
        Next hLink
    Next wSheet
End Sub

編集:
サポート ドキュメント:

「パターン - 正規表現を定義するために使用される文字列。これは、正規表現オブジェクトを使用する前に設定する必要があります。」
...
"Replace (search-string, replace-string) - Replace メソッドは、2 つの文字列を引数として取ります。search-string の正規表現と一致する場合は、その一致を replace-文字列、および新しい文字列が返されます。一致が見つからない場合は、元の検索文字列が返されます。"

http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2

于 2012-09-12T13:49:58.070 に答える