Страницы: 1
RSS
VBA работа с запароленными zip архивами
 
Друзья, добрый день!
Подскажите, пожалуйста, как через VBA можно извлечь файл из запароленного zip архива и/или снять с него пароль. Есть WinRar и стандартный проводник их открывает. Пароль известен.
Google выдает "как снять пароль с проекта VBA", по своему вопросу ничего не могу найти.

Спасибо.
Изменено: whateverlover - 18.02.2021 17:00:29
 
Цитата
whateverlover написал:
Есть WinRar
У Дмитрия Щербакова есть подробная статья на эту тему.
Владимир
 
sokol92, спасибо, большая подробная статья, видел ее, но не видел как там именно задавать пароль при извлечении файла, либо как попросту снять пароль.
Пробую так, распаковывает, но запрашивает в диалоговом окне пароль от архива ввести вручную.
Код
Const sWinRarAppPath As String = "C:\Program Files\WinRAR\WinRAR.exe"
Sub UnRAR()
    Dim sWinRarApp As String
    Dim sPath As String
    Dim sArhivName As String
    'извлекаем данные из архива в скрытом окне(vbHide)
    'с перезаписью существующих файлов (-o+)
    sWinRarApp = sWinRarAppPath & " E -o+"
    'добавляем двойные кавычки, что позволит нам работать с именем файла и путём, которые содержат пробелы.
    'без кавычек пробелы недопустимы
    sPath = "C:\Users\User\Desktop\Folder"
    sArhivName = "File.zip"
    S = Shell(sWinRarApp & " """ & sPath & "\" & sArhivName & """ """ & sPath & """ ", vbHide)
End Sub

Какой ключ нужно прописать для ввода пароля?
Единственно, что связано с паролем нашел, но не понял как это прикрутить.
Код
-p[пароль]   Установить пароль

Я так понял здесь нужно что-то добавить? Подскажите что?
Код
sWinRarApp = sWinRarAppPath & " E -o+"
Изменено: whateverlover - 18.02.2021 17:55:38
 
whateverlover, я дико извиняюсь, но если пароль Вам известен, зачем его вводить с помощью VBA? Буквы там не всегда срабатывают (раскладка, язык и много пр.), Покажите файл и пароль, форумчане посмотрят, чем Вам помочь. Иначе - получается  нарушение правил форума (взлом паролей)
Изменено: _Igor_61 - 18.02.2021 18:04:34
 
_Igor_61, у меня много таких архивов с Excel файлами внутри. Мне необходимо эти Excel файлы соединить в один и уже с этим работать.
Я видел функцию на Power Query, которая умеет работать с файлами в архивах, но, как я понял, пароль для нее большая преграда. Т.е. пароль перед этим надо либо снять, либо файлы массово извлечь из архивов. Архивы добавляются, поэтому снимать пароли придется регулярно, вот этот момент и хотел автоматизировать.
 
см. #4
 
Цитата
whateverlover написал:
Какой ключ нужно прописать для ввода пароля?
Код
Sub UnRAR()
    Dim sWinRarApp As String
    Dim sPath As String
    Dim sArhivName As String
    Dim sPWD$
    Dim retval
    'указываем пароль для архива
    sPWD = "1"
    'извлекаем данные из архива в скрытом окне(vbHide)
    'с перезаписью существующих файлов (-o+)
    sWinRarApp = sWinRarAppPath & " E -o+ -p""" & sPWD & """"
    'добавляем двойные кавычки, что позволит нам работать с именем файла и путём, которые содержат пробелы.
    'без кавычек пробелы недопустимы
    sPath = "C:\Users\Дмитрий\Desktop"
    sArhivName = "File_.zip"
    retval = Shell(sWinRarApp & " """ & sPath & "\" & sArhivName & """ """ & sPath & """ ", vbHide)
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
_Igor_61, я ни в одном месте не попросил взламывать пароль) файлы на рабочем ПК, оттуда не могу ничего ни загрузить, ни скачать...могу заархивировать любой файл в zip архив и выложить, но зачем
Дмитрий(The_Prist) Щербаков, спасибо большое! Завтра буду пробовать на рабочих файлах

Добавлено: Дмитрий, огромное спасибо, все работает так как нужно!
Изменено: whateverlover - 19.02.2021 09:04:02
Страницы: 1
Наверх