Есть ли способ программно удалить все модули VBA из большого количества листов Excel - PullRequest
0 голосов
/ 02 января 2019

У меня есть много файлов Excel (.xls) в папке, и у каждого из них есть макрос / модуль vba, и мне нужно их удалить. Могу ли я написать внешнюю программу, которая просматривает папку, проверяет каждый файл Excel и удаляет модуль vba? Пожалуйста, скажите мне, какой язык программирования может сделать это легче всего. Спасибо!

В ручном режиме мне нужно 1) открыть лист, 2) нажать «Включить содержимое», 3) перейти на вкладку «Разработчик», 4) нажать кнопку «Visual Basic», 5) щелкнуть правой кнопкой мыши модуль vba и удалить , Как я уже упоминал, у меня есть эти файлы Excel, и это обычная работа, и я хочу удалить человеческую часть. Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Измените Путь и попробуйте:

Option Explicit

Sub LoopThroughFiles()

    Dim StrFile As String
    Dim Element As Object
    Dim WB As Workbook

    StrFile = Dir("C:\Users\XXXXX\Desktop\Test\*")

    Do While Len(StrFile) > 0
        If Right(StrFile, 4) = ".xls" Then

            Set WB = Workbooks.Open("C:\Users\marios.p\Desktop\Test\" & StrFile)

            For Each Element In ActiveWorkbook.VBProject.VBComponents
                If Element.Type <> 100 Then
                    ActiveWorkbook.VBProject.VBComponents.Remove Element
                End If
            Next

            WB.Save
            WB.Close

        End If

        StrFile = Dir
    Loop

End Sub
0 голосов
/ 02 января 2019

Что бы я сделал, я бы создал макрос, который бы открывал эти файлы и сохранял их как xlsx вместо xlsm.Поскольку xlsx не может содержать модули, они исчезнут.Чем вам нужно просто удалить оригинальные.

Вы можете даже использовать запись макросов, чтобы сделать это.

Если мы говорим о большом количестве файлов, (я полагаю, мы делаем) Вы можете сгенерировать имя файла, если естьЛогика позади них (например, даты) или вы можете поместить их в папку, а затем перебрать элементы в папке, открыть их, сохранить как, удалить оригинал.

Вы можете найти множество вариантов проверки каждого файла в папке (FSO)

С новым годом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...