Процедура RepeatAndUndo создает соответствующие пункты
End Sub
Public Sub Test() MsgBox ("Hi!") End Sub
Public Sub Write7() Range("A1") = 7 End Sub
Процедура RepeatAndUndo создает соответствующие пункты меню Правка, а процедуры Test и Write7 будут вызываться при выборе пользователем этих пунктов меню. Замечу, что реально особой пользы от применения этих методов не вижу, так как при любых действиях пользователя произойдет обновление этих пунктов меню.
- Методы Repeat и Undo близки по духу к рассмотренным только что методам. Они позволяют повторить или отменить последнее действие пользователя при его работе вручную.
- Еще одним важным методом, позволяющим запускать макрос на выполнение, является метод Run(Macro, Arg1, Arg2, …). Метод Run позволяет выполнить макрос (процедуру или функцию) проекта рабочей книги или функцию из DLL или XLL. Макрос, запускаемый на выполнение, может находиться в той же рабочей книге, что и макрос, вызвавший метод Run, но может принадлежать и другой рабочей книге. В этом случае, естественно, проекты должны быть связаны по ссылке и в проекте, который вызывает макрос другого проекта, должна быть установлена ссылка на вызываемый проект. При вызове макросу могут быть передано произвольное число аргументов, все они передаются по значению, так что, заметьте, нельзя передать макросу сам объект, а только его значение, задаваемое свойством Value. Метод Run в свою очередь возвращает значение, являющееся результатом выполнения макроса. Приведу простой пример, демонстрирующий все особенности вызова метода Run:
Проекту документа BookOne я дал имя BookOneProject. В этом проекте объявлена глобальная переменная
Option Explicit Public GlobalZ As Variant
В модуль с именем ModuleOne этого проекта я поместил описание процедуры PlusXY и функции Plus1. Они выполняют простые и понятные без комментариев действия.
Public Function Plus1(ByVal X As Integer) As Integer Plus1 = X + 1 End Function
Public Sub PlusXY(ByVal X As Integer, Y As Integer) GlobalZ = X + Y End Sub
В этом же модуле находится и процедура testrun, демонстрирующая вызовы метода Run.
Public Sub testrun() 'Запуск на выполнение функции и процедуры, 'находящихся в том же проекте Dim z As Integer z = Application.Run("Plus1", 7) Debug.Print "z = ", z z = Application.Run("PlusXY", 5, 7) Debug.Print "GlobalZ = ", GlobalZ, "z = ", z End Sub
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий