Вызов макросов Microsoft Excel, которые принимают параметры

Аннотация

С помощью службы автоматизации можно управлять Microsoft Excel. Можно вызывать процедуры макросов, хранящиеся в книгах Microsoft Excel, с помощью метода Run объекта приложения Microsoft Excel. Макрокоманды Microsoft Excel, которые принимают параметры, приводят к незначительному изменению синтаксиса. Ниже приведен пример кода, демонстрирующий вызов макрокоманды Microsoft Excel из Visual Basic.

Дополнительная информация

Пошаговый пример

  1. Запустите новый проект в Visual Basic. Form1 создается по умолчанию.

  2. Поместите CommandButton в Form1.

  3. В разделе "Общие объявления" формы Form1 введите следующий код:

          Option Explicit
    
    Private Sub Command1_Click()
           Dim oExcelApp As Object
    
    ' Create a reference to the currently running excel application
           Set oExcelApp = GetObject(, "Excel.application")
           ' Make the Excel Application Visible.
           oExcelApp.Visible = True
           ' Run the excel procedure
           oExcelApp.run "proc", "David", 30
          End Sub
    
  4. Запустите Microsoft Excel. Book1 создается по умолчанию.

  5. Добавьте новый модуль в книгу.

    Для Excel 5.0 и 7.0: в меню "Вставка" выберите макрос и выберите параметр модуля. Откроется новый лист модуля Module1.

    Для Excel 97 и более поздних версий нажмите клавиши ALT+F11, чтобы запустить редактор Visual Basic. Щелкните "Модуль" в меню "Вставка".

  6. В module1 введите следующий код:

    Sub Proc(sParam1 As String, iParam2 As Integer)
            MsgBox sParam1 & " is " & iParam2 & " Years Old"
          End Sub
    
  7. Оставьте книгу открытой в Microsoft Excel и перейдите к проекту в Visual Basic.

  8. В Visual Basic нажмите клавишу F5, чтобы запустить проект. Нажмите кнопку команды, и появится диалоговое окно с текстом "David is 30 years old" (Дэвиду 30 лет).

Ссылки

Дополнительные сведения об использовании Visual Basic для автоматизации Excel см. в следующих статьях:

219151 Автоматизация Microsoft Excel из Visual Basic