mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Макросы VBA Excel

Работа из VBA Excel с оборудованием через Telnet

Программа содержит 4 модуля класса, позволяющие при помощи несложного кода подключаться к различному оборудованию по протоколу Telnet, и выполнять требуемый набор команд.

Команды могут включать в себя значения из диапазона ячеек листа Excel, или же загружаться из внешнего файла.

Примерно так можно задать настройки подключения к конкретному оборудованию:

Function UNIT() As Telnet_Equipment
    ' функция возвращает все необходимые настройки для подключения к оборудованию
    ' в ввиде объекта типа Telnet_Equipment
    Set UNIT = New Telnet_Equipment
    With UNIT
        .Name = "АТС UNIT-004"
        .IP = "192.168.64.122"
        .Port = 6701
        .Login = "user"
        .Password = "password"
        .ResponseBeforeLogin = "*004*"
        .ResponseLogonSucceed = "*Делайте ваш выбор*>*"
        .Prompt = "*" & vbNewLine & ">" & vbNewLine
        With .LogonCommands
            .AddCommand "ytermenter", "*Ваше имя >*", "", 2000
            .AddCommand .Equipment.Login, "*Ваш пароль >*", "", 200
            .AddCommand .Equipment.Password, "*Делайте ваш выбор*", "", 1000
        End With
    End With
End Function

Преобразование списка номеров и названий столбцов в массив значений

Функция ParseColumnsStringEx предназначена для преобразования введенного пользователем списка столбцов в одномерный массив числовых значений.

Назначение функции: исключить ошибки пользовательского ввода, преобразовать буквенные названия столбцов в числовые значения.

Пример использования:

Private Sub ПримерИспользования_ParseColumnsStringEx()
    Dim txt$, txt1$, txt2$
    ' исходная строка с номерами столбцов (c ошибками ввода)
    txt$ = "4-4 , -a- C;8,Я-7,-11-9-F, Е --К; 4,21-,6-F"
 
    ' получаем массив столбцов
    arr = ParseColumnsStringEx(txt)
 
    ' выводим список столбцов:  4,1,2,3,8,7,11,10,9,8,7,6,5,6,7,8,9,10,11,4,21,6,
    For i = LBound(arr) To UBound(arr): Debug.Print arr(i) & ",";: Next i: Debug.Print
 
    ' ======================================
    ' или, например, такая строка
    txt$ = "4-5,8 -k, 6-5;a,e,3,4, 46-BA"
 
    ' получаем массив столбцов (c «промежуточными» значениями)
    arr2 = ParseColumnsStringEx(txt, txt1, txt2)
 
    Debug.Print txt1    ' выводит  4-5;8-K;6-5;A;E;3;4;46-BA
    Debug.Print txt2    ' выводит  4-5,8-11,6-5,1,5,3,4,46-53
    columnsList$ = Join(arr2, ",")
    Debug.Print columnsList$    ' выводит 4,5,8,9,10,11,6,5,1,5,3,4,46,47,48,49,50,51,52,53
End Sub

Функция VB (VBA) для определения продолжительности медиафайла

Получение длительности медиафайла формулой Excel

Узнать продолжительность (время) звучания аудиофайла (MP3, WAV и т.д.), или длительность видеофайла (видеоролика) из Excel совсем несложно.

Используйте функцию ПродолжительностьМедиафайла:
(функцию можно использовать как в макросах, так и на листе Excel)

Sub Пример_Использования_Функции_ПродолжительностьМедиафайла()
    Путь = "E:\Music\MODERN_TALKING With_a_little_love.mp3"
    MsgBox "Продолжительность в секундах: " & ПродолжительностьМедиафайла(Путь), vbInformation, Путь
End Sub

 

А вот и код самой функции:

Макрос форматирования заголовка таблицы

Результат работы макроса форматирования заголовка таблицы

Очень часто мне присылают для обработки файлы, в которых заголовки таблиц никак не отформатированы, что затрудняет работу с такими таблицами.

Поскольку выполнять вручную каждый раз одни и те же действия надоедает, бы написан этот простенький макрос.

Что он делает: (действия выполняются с выделенным диапазоном ячеек)

  • устанавливает выравнивание текста ячеек по центру
  • разрешает перенос текста ячеек по словам
  • закрашивает ячейки серым цветом
  • рисует рамку вокруг ячеек
  • закрепляет строку, расположенную непосредственно под выделенным заголовком
  • (чтобы заголовок таблицы не прокручивался при скроллинге)

 

Загрузка информации из файлов Word (перебор страниц в документе)

Результат обработки файла Word - вывод данных по каждой странице

Функция предназначена для вывода информации (статистики) по всем листам документа Word.

 

В качестве параметра, функция получает ссылку на открытый документ Word.

Результат работы функции представлен на скриншоте.

Код функции WordDocumentProperties: