Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2010, 16:29   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Насколько я знаю, WinRAR поддерживает создание архивов RAR и ZIP (ну и ещё SFX)
Архив 7z он создать не может.

А чем не устраивает ZIP и RAR?
Степень сжатия почти не отличается...

PS: ZIP можно создать и без использования внешней программы (WinRAR) - средствами Windows. (но код будет сложнее)
EducatedFool вне форума Ответить с цитированием
Старый 12.03.2010, 17:05   #12
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Пусть будет Архив ZIP.

Вот я нашёл ещё ваш макрос:

Sub Zip_thisWorkbook()
DefPath = "e:\"
'Create date/time string and the temporary xls/zip file names
strDate = Format(Now, " dd-mmm-yy h-mm-ss")
FileNameZip = DefPath & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & strDate & ".zip"
FileNameXls = DefPath & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & strDate & ".xls"
If Dir(FileNameZip) = "" And Dir(FileNameXls) = "" Then
'Make copy of the thisWorkbook
ThisWorkbook.SaveCopyAs FileNameXls 'Create empty Zip File
NewZip (FileNameZip) 'Copy the file in the compressed folder
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(FileNameZip).CopyHer e FileNameXls 'Keep script waiting until Compressing is done
On Error Resume Next
Do Until oApp.Namespace(FileNameZip).Items.C ount = 1
Application.Wait (Now + TimeValue("0:00:01"))
Loop
On Error GoTo 0
End If
Kill FileNameXls ' удаляем временно созданный файл Excel
MsgBox "Создан архив: " & FileNameZip, vbInformation, "Готово"
'Set fs = CreateObject("Scripting.FileSystemO bject"): 'fs.MoveFile FileNameZip, "d:\"
End Sub

Sub NewZip(sPath)
If Len(Dir(sPath)) > 0 Then Kill sPath
Open sPath For Output As #1
Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
End Sub

Но как прикрутить его к ранее созданному вами макросу для меня очень сложно.

Может поможете сегодня в последний раз.
vfv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрытное копирование папки с файлами BanDit Общие вопросы Delphi 36 08.03.2011 21:53
Резервное копирование БД Paradox andirock2112 БД в Delphi 6 19.05.2009 17:35
Прога Резервное копирование Yar Помощь студентам 1 28.05.2008 11:24
Резервное копирование файлов Viteef Софт 0 15.12.2007 08:02