Vba 搜索Excel宏的内容

Vba 搜索Excel宏的内容,vba,excel,powershell,Vba,Excel,Powershell,我正在寻找一种方法来浏览数百个Excel文件的内容,以查找并删除硬编码用户和密码的任何痕迹 我希望在Powershell中有一个函数,但到目前为止我还没有找到它。您应该使用文件脚本对象 并结合引用VBIDE对象,列出项目中的所有模块,以及: 在模块中搜索文本 Sub SearchCodeModule() Dim VBProj As VBIDE.VBProject Dim VBComp As VBIDE.VBComponent Dim CodeMod As VBIDE.Co

我正在寻找一种方法来浏览数百个Excel文件的内容,以查找并删除硬编码用户和密码的任何痕迹


我希望在Powershell中有一个函数,但到目前为止我还没有找到它。

您应该使用文件脚本对象

并结合引用VBIDE对象,列出项目中的所有模块,以及:

在模块中搜索文本

Sub SearchCodeModule()
    Dim VBProj As VBIDE.VBProject
    Dim VBComp As VBIDE.VBComponent
    Dim CodeMod As VBIDE.CodeModule
    Dim FindWhat As String
    Dim SL As Long ' start line
    Dim EL As Long ' end line
    Dim SC As Long ' start column
    Dim EC As Long ' end column
    Dim Found As Boolean

    Set VBProj = ActiveWorkbook.VBProject
    Set VBComp = VBProj.VBComponents("Module1")
    Set CodeMod = VBComp.CodeModule

    FindWhat = "findthis"

    With CodeMod
        SL = 1
        EL = .CountOfLines
        SC = 1
        EC = 255
        Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
            EndLine:=EL, EndColumn:=EC, _
            wholeword:=True, MatchCase:=False, patternsearch:=False)
        Do Until Found = False
            Debug.Print "Found at: Line: " & CStr(SL) & " Column: " & CStr(SC)
            EL = .CountOfLines
            SC = EC + 1
            EC = 255
            Found = .Find(target:=FindWhat, StartLine:=SL, StartColumn:=SC, _
                EndLine:=EL, EndColumn:=EC, _
                wholeword:=True, MatchCase:=False, patternsearch:=False)
        Loop
    End With
End Sub

资料来源:

你在哪里使用这个?你应该对我的建议有一个很好的基础