Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как макросом разархивировать запароленный архив - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как макросом разархивировать запароленный архив (Макросы/Sub)
Как макросом разархивировать запароленный архив
OlegSmirnov Дата: Воскресенье, 03.12.2017, 09:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток, братья по программистской крови.
Выручайте.

У меня есть запароленный архив 1632rt.rar
Архив лежит в одной папке с книгой экселя, название архива - находится в ячейке B4.
Пароль к архиву - 123

Как макросом - разархивировать этот архив ?
К сообщению приложен файл: 1632rt.rar(0Kb) · 7183597.xls(12Kb)
 
Ответить
СообщениеДоброго времени суток, братья по программистской крови.
Выручайте.

У меня есть запароленный архив 1632rt.rar
Архив лежит в одной папке с книгой экселя, название архива - находится в ячейке B4.
Пароль к архиву - 123

Как макросом - разархивировать этот архив ?

Автор - OlegSmirnov
Дата добавления - 03.12.2017 в 09:26
doober Дата: Воскресенье, 03.12.2017, 11:57 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 416
Репутация: 215 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте
Выручайте.

Выручаю


 
Ответить
СообщениеЗдравствуйте
Выручайте.

Выручаю

Автор - doober
Дата добавления - 03.12.2017 в 11:57
bmv98rus Дата: Воскресенье, 03.12.2017, 12:49 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
Докину
7Zip command line
Ну а как вызвать то тут
https://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.84)


Сообщение отредактировал bmv98rus - Воскресенье, 03.12.2017, 12:50
 
Ответить
СообщениеДокину
7Zip command line
Ну а как вызвать то тут
https://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.84)

Автор - bmv98rus
Дата добавления - 03.12.2017 в 12:49
OlegSmirnov Дата: Понедельник, 04.12.2017, 00:46 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
doober, посмотрел я ссылку и не нашел того, что нужно.

Приводятся команды архивации, архивации с паролем и распаковки.
Но где команда - распаковка с паролем ?

У меня файл-то запароленный.
 
Ответить
Сообщениеdoober, посмотрел я ссылку и не нашел того, что нужно.

Приводятся команды архивации, архивации с паролем и распаковки.
Но где команда - распаковка с паролем ?

У меня файл-то запароленный.

Автор - OlegSmirnov
Дата добавления - 04.12.2017 в 00:46
OlegSmirnov Дата: Понедельник, 04.12.2017, 00:48 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, посмотрел ссылки - нашел куски кода из которых составил следующее:
[vba]
Код

Sub Макрос1()

Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "c:\program files\winrar\rar.exe" a -ag -x*.jpg C:\Documents\documents.rar C:\Documents"
Set oShell = Nothing

End Sub
[/vba]
И как - этот код заставить распаковать запароленный архив ?


Сообщение отредактировал OlegSmirnov - Понедельник, 04.12.2017, 00:49
 
Ответить
Сообщениеbmv98rus, посмотрел ссылки - нашел куски кода из которых составил следующее:
[vba]
Код

Sub Макрос1()

Dim oShell
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "c:\program files\winrar\rar.exe" a -ag -x*.jpg C:\Documents\documents.rar C:\Documents"
Set oShell = Nothing

End Sub
[/vba]
И как - этот код заставить распаковать запароленный архив ?

Автор - OlegSmirnov
Дата добавления - 04.12.2017 в 00:48
bmv98rus Дата: Понедельник, 04.12.2017, 01:49 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
OlegSmirnov,
http://www.cyberforum.ru/cmd-bat/thread702837.html
Я не могу ручатся, но
c:\program files\winrar\rar.exe" e -p123 -ag -x*.jpg C:\Documents\documents.rar C:\Documents
Проверить не могу ибо много лет RAR не установлен, хватает 7Zip, да и вопрос не косается Excel

на счет запуска можно еще это брать http://www.excelworld.ru/stuff/vba_function/system/shell/24-1-0-102, но первый вариант интеерсен тем, что можно задать принудительно ждать окончания работы запущенной программы, а также получать то что в консоле возвращетеся, но это вам скорее всего не требуется.
 
Ответить
СообщениеOlegSmirnov,
http://www.cyberforum.ru/cmd-bat/thread702837.html
Я не могу ручатся, но
c:\program files\winrar\rar.exe" e -p123 -ag -x*.jpg C:\Documents\documents.rar C:\Documents
Проверить не могу ибо много лет RAR не установлен, хватает 7Zip, да и вопрос не косается Excel

на счет запуска можно еще это брать http://www.excelworld.ru/stuff/vba_function/system/shell/24-1-0-102, но первый вариант интеерсен тем, что можно задать принудительно ждать окончания работы запущенной программы, а также получать то что в консоле возвращетеся, но это вам скорее всего не требуется.

Автор - bmv98rus
Дата добавления - 04.12.2017 в 01:49
OlegSmirnov Дата: Понедельник, 04.12.2017, 02:18 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, в общем получилась более-менее работоспособная конструкция:
[vba]
Код
Sub Rar_UnRar()
    Dim RetVal
    Dim WinRarApp$, iFileName$, iArhivName$, adr$

    WinRarApp$ = "C:\Program Files\WinRAR\WinRAR.exe e -o+ "
    adr$ = "C:\Program Files\WinRAR\WinRAR.exe e -p123 -o+  " & """" & "C:\1\111\1632rt.rar" & """ C:\1\222\"""
    RetVal = Shell(adr$, vbHide)  'vbNormalFocus)
End Sub
[/vba]
Но приходится каждый раз при смене пароля - лезть в макрос и менять его. То же касается и названий архива.
Значение пароля находится в ячейке I3, адрес архива в ячейке I6, а адрес распаковки в ячейке I9.

Я пытался целевую строчку записать таким образом:
[vba]
Код
adr$ = "C:\Program Files\WinRAR\WinRAR.exe e -p&Range("I3") -o+  " & """" & Range("I6") & """ Range("I9")"""
[/vba]
Что-то не работает.

Как внедрить в команду - ссылки на адреса ячеек ?
К сообщению приложен файл: 1-.xls(36Kb) · 0375148.rar(0Kb)
 
Ответить
Сообщениеbmv98rus, в общем получилась более-менее работоспособная конструкция:
[vba]
Код
Sub Rar_UnRar()
    Dim RetVal
    Dim WinRarApp$, iFileName$, iArhivName$, adr$

    WinRarApp$ = "C:\Program Files\WinRAR\WinRAR.exe e -o+ "
    adr$ = "C:\Program Files\WinRAR\WinRAR.exe e -p123 -o+  " & """" & "C:\1\111\1632rt.rar" & """ C:\1\222\"""
    RetVal = Shell(adr$, vbHide)  'vbNormalFocus)
End Sub
[/vba]
Но приходится каждый раз при смене пароля - лезть в макрос и менять его. То же касается и названий архива.
Значение пароля находится в ячейке I3, адрес архива в ячейке I6, а адрес распаковки в ячейке I9.

Я пытался целевую строчку записать таким образом:
[vba]
Код
adr$ = "C:\Program Files\WinRAR\WinRAR.exe e -p&Range("I3") -o+  " & """" & Range("I6") & """ Range("I9")"""
[/vba]
Что-то не работает.

Как внедрить в команду - ссылки на адреса ячеек ?

Автор - OlegSmirnov
Дата добавления - 04.12.2017 в 02:18
doober Дата: Понедельник, 04.12.2017, 03:47 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 416
Репутация: 215 ±
Замечаний: 0% ±

Excel 2007
Что-то не работает
А так работает?[vba]
Код
Sub Rar_UnRar()
    Dim RetVal
    Dim WinRarApp$, iFileName$, iArhivName$, adr$
    pass = "1111"
    filein = "C:\1\2.rar"
    folderOut = "C:\2\"
    WinRarApp$ = Chr(34) & "C:\Program Files\WinRAR\WinRAR.exe" & Chr(34) & " e -p" & pass & " -o+ "
    adr$ = WinRarApp$ & Chr(34) & filein & Chr(34) & " " & Chr(34) & folderOut & Chr(34)
    RetVal = Shell(adr$, vbHide)  'vbNormalFocus)
End Sub
[/vba]


 
Ответить
Сообщение
Что-то не работает
А так работает?[vba]
Код
Sub Rar_UnRar()
    Dim RetVal
    Dim WinRarApp$, iFileName$, iArhivName$, adr$
    pass = "1111"
    filein = "C:\1\2.rar"
    folderOut = "C:\2\"
    WinRarApp$ = Chr(34) & "C:\Program Files\WinRAR\WinRAR.exe" & Chr(34) & " e -p" & pass & " -o+ "
    adr$ = WinRarApp$ & Chr(34) & filein & Chr(34) & " " & Chr(34) & folderOut & Chr(34)
    RetVal = Shell(adr$, vbHide)  'vbNormalFocus)
End Sub
[/vba]

Автор - doober
Дата добавления - 04.12.2017 в 03:47
OlegSmirnov Дата: Понедельник, 04.12.2017, 05:37 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
doober, во !!!
Теперь все заработало.

doober, bmv98rus - спасибо за помощь.
 
Ответить
Сообщениеdoober, во !!!
Теперь все заработало.

doober, bmv98rus - спасибо за помощь.

Автор - OlegSmirnov
Дата добавления - 04.12.2017 в 05:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как макросом разархивировать запароленный архив (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!