0
いくつかのExcelファイルを調べて、文字列をVBAコードだけでなく任意のデータ接続でも置き換える必要があります。接続のループは簡単ですが、実際のマクロファイルそのものをすばやく実行できるかどうかはわかりません。これを手動で行う必要がある場合、それは問題ありませんが、私はそれを行うための滑らかな方法を望んでいます。思考?Excelファイルのマクロ内の文字列を検索/置換する
いくつかのExcelファイルを調べて、文字列をVBAコードだけでなく任意のデータ接続でも置き換える必要があります。接続のループは簡単ですが、実際のマクロファイルそのものをすばやく実行できるかどうかはわかりません。これを手動で行う必要がある場合、それは問題ありませんが、私はそれを行うための滑らかな方法を望んでいます。思考?Excelファイルのマクロ内の文字列を検索/置換する
@ Absintheの記事の助けを借りて、問題に答えるためにいくつかのコードをまとめました。
Public Sub MacroStringReplace()
Dim x As Variant, SL As Long, EL As Long, SC As Long, EC As Long
Dim OLD_STRING As String, NEW_STRING As String, foundString As String
OLD_STRING = "Old"
NEW_STRING = "New"
With Workbooks.Open("C:\docs\foo.xlsm")
'Macro Server String Replace
For Each x In .VBProject.VBComponents
SL = 1: EL = 1: SC = 1: EC = 1 'Default end line and column is 1
'The find function here returns Boolean
'SL will be the line number where the string was found (if at all)
Do Until x.CodeModule.Find(OLD_STRING, SL, EL, SC, EC) = False
foundString = x.CodeModule.Lines(SL, 1) 'Get the full line of code
x.CodeModule.ReplaceLine SL, Replace(foundString, OLD_STRING, NEW_STRING)
SL = 1: EL = 1: SC = 1: EC = 1 'Reset the search numbers
Loop
Next
End With
End Sub
これは将来的に他の人に役立つことを願っています。
これは役立つかもしれません:http://www.cpearson.com/excel/vbe.aspx – Absinthe
それは、私は質問に答えることができました(以下に掲載)。 – legendjr
素敵な仕事、リンクがうれしい – Absinthe