Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 6 Следующий »

Запустить внешний макрос Версия 4 (.Net)

Группа действий: Excel 


Действие запускает в Excel-файле макрос, VBA-код которого указан в отдельном текстовом файле. 

Иконка действия

  

Параметры действия

Входные данные

  1. Поле “Контекст” - Экземпляр Word-документа, в котором будет запущен внешний макрос.
  2. Поле “Файл” – Путь к текстовому файлу макроса, который содержит VBA-код
  3. Поле “Имя процедуры” - Имя вызываемой функции или подпрограммы, которая указана в VBA-коде макроса.
  4. Поле “Параметры” - Значения входных параметров вызываемой функции или подпрограммы в коде макроса. Значения параметров необходимо указывать в том же порядке, в каком эти параметры указаны в вызываемой функции.

Настройки

Свойство

Англ. наименование

Описание

Тип

Пример заполнения

Обязательность заполнения поля

Параметры
Контекст

Context

Экземпляр Excel-документа, с которым работает действиеRobin.ExcelEXCEL_INSTANCEДа
Файл
File

Путь к текстовому файлу макроса, который содержит VBA-код

Robin.FilePath

C:\Users\User\Desktop\111.txtДа
Имя процедуры
Procedure name
Имя вызываемой функции или подпрограммы, которая указана в VBA-коде макросаRobin.StringmakrosДа

Параметры

Parameters
Значения входных параметров вызываемой функции или подпрограммы в коде макросаRobin.Object
Нет
Результаты
Результат
Result
Значение, возвращаемое запущенным макросом. Если указанный макрос ничего не возвращает, результат работы действия будет пустымRobin.Object

Особые условия использования

Чтобы запуск внешних макросов был возможен, следует выполнить следующие действия:

  1. Открыть Excel options.
  2. Выбрать "Trust Center".
  3. Нажать на кнопку "Trust Center Settings".
  4. В открывшемся окне выбрать "Macro Settings".
  5. Поставить галочку напротив пункта "Trust access to the VBA project object model" (если не установлена).

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

Русский язык не поддерживается в названии  макроса (функции).

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

Задача

Есть Excel - документ.

Необходимо проверить актуальность дат в столбце дата по текущему месяцу. В случае если дата не актуально пометить красным цветом. Также необходимо вывести в диалоговое окно количество неактуальных дат.

Решение

Для реализации действия нужны следующие действия - "Открыть", "Запустить внешний макрос", “Сообщение”, “Сохранить”, “Закрыть”.

Реализация

  1. Собрать схему робота, состоящего из действий:

2. Укажем параметры в действии “Открыть 1”.

3. Укажем параметры в действии “Запустить внешний макрос”

4. Подробнее по созданию макроса можно узнать здесь: Создание макросов.

Пример макроса

Function TestMonth() As Long
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim currentMonthYear As String
    Dim cell As Range
    Dim counter As Long
    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    currentMonthYear = Format(Now, "MM.YY")
    counter = 0
    For Each cell In ws.Range("A1:A" & lastRow)
        Dim cellMonthYear As String
        cellMonthYear = Format(cell.Value, "MM.YY")
        If cellMonthYear <> currentMonthYear Then
            counter = counter + 1
            cell.Interior.Color = RGB(255, 0, 0)
        End If
    Next cell
    TestMonth = counter
End Function

Function TestMonth() As Long

    Dim ws As Worksheet

    Dim lastRow As Long

    Dim currentMonthYear As String

    Dim cell As Range

    Dim counter As Long

    Set ws = ActiveSheet

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    currentMonthYear = Format(Now, "MM.YY")

    counter = 0

    For Each cell In ws.Range("A1:A" & lastRow)

        Dim cellMonthYear As String

        cellMonthYear = Format(cell.Value, "MM.YY")

        If cellMonthYear <> currentMonthYear Then

            counter = counter + 1

            cell.Interior.Color = RGB(255, 0, 0)

        End If

    Next cell

    TestMonth = counter

End Function

5. Настроить параметры действия “Сообщение”. Для того чтобы отобразить количество неактуальных дат необходимо передать результат макроса в параметр действия “Сообщение” в поле “Текст сообщения”:

6. Укажем параметры в действии “Сохранить”

7. Укажем параметры в действии “Закрыть”

8. Нажмем на кнопку “Старт” и посмотрим результат

Результаты

Макрос успешно отработал

  • Нет меток