Архивы

Получение файлов из архива ZIP на VBA

Функция предназначена для получения файлов, извлечённых из архива ZIP.

Разархивирование выполняется средствами Windows, файлы извлекаются в специально созданную папку в каталоге для временных файлов (C:\WINDOWS\Temp\)

При запуске макроса папка UNZIPPED FILES сначала удаляется, а потом создаётся заново.
(таким образом, выполняется удаление файлов, которые могли оказаться в папке при предыдущем запуске макроса)

Функция возвращает коллекцию, содержащую полные пути к извлечённым файлам.

См. также функцию UnZip_File, предназначенную для разархивирования файлов
в заданную папку, с возможностью удаления исходного файла-архива.

Пример использования функции FilesFromZip:

Sub ПримерИспользования()
    On Error Resume Next
    file$ = "D:\Проекты\Прайсы\Архив.zip"    ' путь к архиву, из которого будем извлекать файлы
    
    Dim coll As Collection
    Set coll = FilesFromZip(file)
    Debug.Print "Извлечено файлов: " & coll.Count ' выводи количество файлов
    
    For Each filename In coll ' выводим пути к извлечённым из архива ZIP файлам
        Debug.Print filename
    Next
End Sub

Скрытая отправка списка изменений в файле на почту

Отправленное макросом письмо с копией изменённого файла в архиве

Программа предназначена для отправки копии обрабатываемого файла (в виде архива) на заданный адрес электронной почты.

Особенности программы:

  • используется отправка письма средствами Windows (без использования почтовых программ)
    (в качестве адреса отправителя можно использовать любой адрес почты)
  • перед отправкой файл архивируется (создаётся архив ZIP средствами Windows, без применения программ-архиваторов)
  • в тексте письма указывается, какие именно данные были изменены (макрос отслеживает изменения определённых ячеек листов Excel)
  • в письме указывается IP-адрес и прочие характеристики компьютера, с которого был отправлен файл
  • все действия происходят незаметно для пользователя (никаких уведомлений не выводится)
  • отправка письма с файлом производится каждый раз при закрытии файла

 

Макрос создания копии файла Excel в виде архива ZIP

Макрос для архивации текущей (или активной) книги Excel средствами Windows

(без использования сторонних программ-архиваторов)

Во вложении - файл, при запуске которого автоматически срабатывает такой макрос
При открытии этого файла, если включены макросы, в папке My Program Backups будет сохранена копия книги в формате ZIP (архив)
Папка, если таковая не существует, будет автоматически создана макросом.

 

Sub CreateBackup()
    ' Макрос создания резервной копии текущего файла
    ' Чтобы макрос обрабатывал активную книгу - замените в коде
    ' все ThisWorkbook на ActiveWorkbook
    ' Архивация файла осуществляется средствами Windows
    
    Const PROJECT_NAME = "My Program" ' название вашей программы (любой текст)
    On Error Resume Next: ThisWorkbook.Save ' сохраняем книгу Excel
    
    ' формируем путь к папке, куда будет помощена копия файла (в виде архива)
    BackupsPath = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, PROJECT_NAME & " Backups\")
    MkDir BackupsPath ' создаём папку, если таковой ещё нет
    
    ext$ = Split(ThisWorkbook.Name, ".")(UBound(Split(ThisWorkbook.Name, "."))) ' расширение файла
    ' формируем путь для копии файла Excel
    FileNameXls = BackupsPath & PROJECT_NAME & "_BACKUP_" & Format(Now, "DD-MM-YYYY__HH-NN-SS") & "." & ext$
    ' формируем путь для создаваемого архива ZIP
    FileNameZip = BackupsPath & PROJECT_NAME & "_BACKUP_" & Format(Now, "DD-MM-YYYY__HH-NN-SS") & ".zip"
 
    ThisWorkbook.SaveCopyAs FileNameXls ' создаём копию книги
    ZIPresult = Zip_File(FileNameXls, FileNameZip, True) ' упаковываем копию книги в архив ZIP
    
    Debug.Print "Результат архивации: " & IIf(ZIPresult, "выполнена успешно", "ошибка")
    Debug.Print "Создан архив: " & Dir(FileNameZip)
End Sub

Программа учёта и администрирования сети связи телекоммуникационной компании

Поиск трасс и просмотр ресурсов оборудования

Программный комплекс, предназначенный для автоматизации учёта и администрирования сети связи телефонной или телекоммуникационной компании.

Программа позволяет хранить и редактировать базу данных объектов (в виде файлов Excel), просматривать существующие трассы и формировать новые.

 

Особенность программы - возможность учёта и администрирования узлов связи с нестандартными технологическими решениями:

  1. кабели на кроссах могут быть расшиты частично (или с двух сторон по-разному),
  2. часть кабелей на кроссе может быть не расшита на плинты Krone,
  3. поддерживаются различные типы муфт, кабелей и оборудования,
  4. оборудование (например, шлюзы VoIP, уплотнения, модемы со сплиттерами) может подключаться к кабелям напрямую, а может быть расшито на плинты Krone

Дополнительные возможности программы:

  1. возможно применение для администрирования как медной, так и с оптической кабельной сети
    (в программу легко добавить новые типы кабелей и оборудования)
  2. реализована проверка наличия технической возможности на обьектах (программа, к примеру, понимает, что для нового подключения абонента по технологии ADSL совсем не обязательно подыскивать отдельную медную пару - можно пустить ADSL и по используемой телефонной линии, в то же время программа не будет пытаться пустить линию ISDN по паре, занятой под xDSL)
  3. Формирование нарядов на выполнение работ (для монтажников), распечатка трасс (для облегчения поиска неисправностей на линиях связи)

 

Все используемые данные хранятся на сервере, сама же программа (в виде надстройки XLA для Microsoft Excel) запускается на компьютерах пользователей.

Реализовано гибкое разграничение прав доступа (9 уровней), загрузка обновлений программы с сайта.

 

Используется модульная архитектура - к программе подключаются различные модули для расширения функционала.

К примеру, на сегодняшний день реализованы следующие модули:

  1. формирование список абонентов и услуг (телефония, интернет, дополнительные услуги),
  2. загрузка и выгрузка кроссировочных данных в биллинговую систему,
  3. активация и блокировка номеров в АТС Alcatel OmniPCX 4400 нажатием одной кнопки,
  4. регистрация DECT-терминалов (и получение статистики их работы), прочие отчёты на основании данных из АТС,
  5. управление различными устройствами Wi-Fi и VoIP (чтение и запись настроек) через Telnet
  6. формирование отчётов по трафику (выгрузка данных из биллинговой системы, их обработка, автоматическое преобразование IP-адресов в доменные имена, формирование ежедневных и ежемесячных отчётов)
  7. быстрая проверка доступности отдельных узлов сети - отправка серии запросов ping до выбранного IP-адреса нажатием одной кнопки

Посмотреть все скриншоты программы