
- •90. Програма текстовий редактор ms Word.
- •91. Програма електронні таблиці ms Excel.
- •92. Запуск редактора vba, вікно проекту, вікно модуля.
- •93. Структура програми на vba
- •94. Vba. Типи змінних
- •95. Vba. Синтаксис опису функцій.
- •96. Vba. Добавление процедуры или функции в проект. Общие процедуры
- •97. Миф. Запуск процедуры пользователя или формы. Запуск процедуры vba из командной строки
- •Запуск процедур и функций vba из существующего документа ms Office
- •Динамическое создание и запуск процедур и функций vba
- •99. Vba. Логічні операції. Логические операции
- •Ефективність операцій
- •Збереження в пам'яті
- •Індекси в масивах
- •Зберігання багатовимірних масивів
- •106. Vba. Створення форм.
- •107. Vba. Розміщення елементів управління в формі.
- •108. Vba. Використання надписів, перемикачів, полів, кнопок
- •112. Vba. Об’єкт Worksheets та його властивості
- •113. Vba. Об’єкт Range та його властивості (а це взагалі прикол, тому що насправді це ніякий не об’єкт... - прим. Ред)
- •114. Безпека документів від шкідливих макросів в Excel
- •115. Програма підготовки презентації ms Power Point.
- •116. Програма субд ms Access.
- •117. Програмування на vba. Vba для Excel.
- •118. Глобальна мережа Інтернет.
- •119. Адресация в Интернете: доменная система имен и ip-адреса.
- •120.Способи підключення до Інтернету.
- •121. Сервисы и протоколы в Интернете.
- •122. Служба веб
- •123. Електронна пошта
- •124. Пошукові системи в Інтернеті. Системы информационного поиска сети Интернет.
- •Системы, основанные на предметных каталогах.
- •Автоматические индексы.
- •125. Програми-браузери. Браузер
- •Протоколы передачи электронной почты
- •Популярные программы для работы с e-mail
- •127. Етикет в Інтернеті.
- •128. Безпека роботи в Інтернеті. Политика безопасности при работе с электронной почтой
- •132. Концепція комутації пакетів як технологій оброблення і зберігання даних.
- •133. Технологія «клієнт-сервер».
- •134. Сутність розподілених технологій оброблення і зберігання даних.
- •135. Електронна пошта як інформаційна технологія.
- •136. Создание Web-страницы
- •139. Можливість та форми електронного бізнесу.
- •140. Електронний уряд України.
- •141. Електронне місцеве самоврядування в Україні.
- •142. Громадські електронні фонди в Україні.
- •Проблема підготовки бібліотечних працівників
- •Навчання користувачів бібліотек
- •143. Електронні місцеві ограни влади в Україні.
- •Запрацювали електронні громадські приймальні | 01 травня 2006 10:33
- •144. Безпека і захист інформації в Інтернеті.
- •145. Застосування комп’ютерних криптографічних технологій в економіці. Функції «електронного конверта» та «цифрового електронного підпису».
- •146. Технологія «цифрового електронного підпису». Властивості електронного підпису. Хеш-функції.
- •147. Технологія «цифрового електронного підпису». Відправлення підписаних документів.
- •148. Технологія «цифрового електронного підпису». Отримання підписаних документів.
- •149. Технологія «цифрового електронного підпису». Цифровий електронний сертифікат.
- •150. Технологія «цифрового електронного підпису». Функції сертифікації центру. Посилений сертифікат відкритого ключа.
- •151. Технологія «цифрового електронного підпису». Функція зв’язку для методу Діффі-Хелмана застосування для симметричного застосування.
97. Миф. Запуск процедуры пользователя или формы. Запуск процедуры vba из командной строки
Создвайте файл AutoLISP, в который добавте следующее:
;; Test VBA COMMAND (defun c:vbatest (/) (princ) ) |
Добавьте в стандартный модуль проекта следующий код:
Public Sub VBATest() MsgBox "What do you know, it works" End Sub |
Затем добавьте в модуль ThisDrawing следующий код:
Private Sub AcadDocument_BeginLisp(ByVal FirstLine As String) If FirstLine = "(C:VBATEST)" Then Call VBATest End If End Sub |
Запуск процедур и функций vba из существующего документа ms Office
Следующий скрипт демонстрирует возможность запуска функции, написанной на VBA, из существующей книги Excel. Функции, написанные на VBA, могут получать параметры из скрипта и возвращать значение в скрипт:
Set objExcel = CreateObject("Excel.Application")
objExcel.WorkBooks.Open "C:\MyWorkBook.xls" 'открытие книги Excel
Param1 = "" 'подготовка параметров для передачи в функцию
Param2 = ""
'вызов функции и получение значения, которое она возвращает:
Result = objExcel.Application.Run("MyFunction", Param1, Param2)
objExcel.Quit
Таким образом, вы можете писать процедуры и функции на VBA, используя специфические возможности VBA, а затем вызывать их из скриптов Windows Script Host. Примечание: если запускаемая из vb-скрипта функция VBA вызывает диалоговую форму VBA, эта форма будет отображена!
Динамическое создание и запуск процедур и функций vba
Следующий скрипт демонстрирует возможность динамического создания и запуска процедур и функций VBA с параметрами (в т.ч. с использованием функций Win32 API в среде VBA). Для возможности работы скрипта необходимо установить флажок "Доверять доступ к Visual Basic Project" на вкладке "Надежные издатели" диалога "Безопасность" в соответствующем приложении (Word или Excel) через меню "Сервис" - "Макрос" - "Безопасность...". Также возможно потребуется снять флажок "Require Variable Declaration" на вкладке "Editor" окна "Options" редактора VBA (меню "Tools" - "Options..."), чтобы VBE не пыталась автоматически вставлять инструкцию "Option Explicit".
'Создание объекта Word:
'Set objOffice = CreateObject("Word.Application")
'objOffice.Documents.Add
'Примечание: если в момент запуска этого скрипта Word уже запущен, в момент удаления временного
'модуля VBA произойдёт конфликт доступа к Normal.dot.
'Создание объекта Excel:
Set objOffice = CreateObject("Excel.Application")
objOffice.DisplayAlerts = False
Set objWorkBook = objOffice.WorkBooks.Add
objWorkBook.Worksheets.Add
i = objOffice.VBE.ActiveVBProject.VBComponents.Count
objOffice.VBE.ActiveVBProject.VBComponents.Add 1
Set objModule = objOffice.VBE.ActiveVBProject.VBComponents.Item(i + 1)
With objModule.CodeModule
.InsertLines 1, "Public Declare Function Beep Lib ""kernel32"" _"
.InsertLines 2, "(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long"
.InsertLines 3, "Sub TestSub(Caption as String, Text as String)"
.InsertLines 4, " MsgBox Text, vbOkOnly + vbInformation, Caption"
.InsertLines 5, "End Sub"
.InsertLines 6, "Sub TestBeep()"
.InsertLines 7, " res = Beep(500, 100)"
.InsertLines 8, " res = Beep(550, 100)"
.InsertLines 9, " res = Beep(600, 100)"
.InsertLines 10, " res = Beep(650, 100)"
.InsertLines 11, " res = Beep(700, 100)"
.InsertLines 12, " res = Beep(650, 100)"
.InsertLines 13, " res = Beep(600, 100)"
.InsertLines 14, " res = Beep(550, 100)"
.InsertLines 15, " res = Beep(500, 700)"
.InsertLines 16, "End Sub"
End With
objOffice.Application.Run "TestSub", "Test VBA", "Сейчаc будет произведён вызов Win32 API функции Beep()..."
objOffice.Application.Run "TestBeep"
'Следующая строка нужна, если используется Word:
'objOffice.VBE.ActiveVBProject.VBComponents.Remove objModule
objOffice.Quit
Как видно из приведённого выше скрипта, динамическое создание и запуск процедур и функций VBA возможны как с помощью Excel, так и с помощью Word. Для использования Excel или Word достаточно раскомментировать и закомментировать нужные блоки кода.
98.VBA. Правила запису інструкції If… Then… Else. Багаторядкова структура. Конструкция ╚If-Then-Else╩ - очень полезное средство при программировании Outlook (как и при программировании в Visual Basic или VBA). Она позволяет вам вычислить условное выражение, например, соответствие строки темы какому-либо значению, и в зависимости от результата выполнить определенные действия. Вот базовый пример:
If myMessage.Subject = "Hello World!" Then myMessage.Print Else myMessage.Delete End If
В этом примере показано, как проверяется соответствие поля темы объекта myMessage выражению ╚Hello World!╩. Если соответствие установлено, выполняется печать сообщения, в противном случае оно удаляется.
Если вы хотите выполнить некое действие при определенных условиях, и ничего не выполнять, если это условие не соблюдается, то часть выражения ╚Else╩ можно не использовать. Например, если вы хотите распечатать сообщения, имеющее тему ╚Hello World!╩, а с остальными ничего делать не надо, можно использовать следующий код:
If myMessage.Subject = "Hello World!" Then myMessage.Print End If
Если условие (определенная тема письма) не выполняется, программа пропускает шаг печати и продолжает выполнять оставшуюся часть кода.
Многие пользователи используют конструкцию ╚If-Then-Else╩ для создания макросов Outlook, которые могут облегчить вам жизнь.
Багаторядкова структура – це структура з розгалуженням (переважно – ні/так).