Главная страница
Навигация по странице:

  • Properties

  • Просмотр объектов

  • Локальные переменные

  • Enter

  • Application.ScreenUpdating = False

  • Application.ScreenRefresh

  • ProgressBar

  • Label3

  • UserForm_Activate()

  • UserForm_Activate .Разумеется, текст можно изменять и улучшать. Например, не сколько раз использовать ProgressBar

  • WithEvents

  • Леонтьев Б.К. Я изучаю Microsoft Office Visio 2003 (PDF). Удк 004. 738. 5 Ббк 32. 973. 26 018. 2


    Скачать 0.88 Mb.
    НазваниеУдк 004. 738. 5 Ббк 32. 973. 26 018. 2
    АнкорЛеонтьев Б.К. Я изучаю Microsoft Office Visio 2003 (PDF).pdf
    Дата25.04.2017
    Размер0.88 Mb.
    Формат файлаpdf
    Имя файлаЛеонтьев Б.К. Я изучаю Microsoft Office Visio 2003 (PDF).pdf
    ТипДокументы
    #4822
    КатегорияИнформатика. Вычислительная техника
    страница25 из 35
    1   ...   21   22   23   24   25   26   27   28   ...   35
    Application, а набрать Appli и нажать Ctrl+пробел. Редактор допишет слово сам или предоставит возможность выбора слова, если его однознач но нельзя определить по первым буквам. Он как бы «ведет» программис та по процессу написания программы, позволяя ему сосредоточиться не на банальном синтаксисе языка, а на решаемой программой проблеме, и не держать в памяти правила написания каждой команды.
    Даже если программист не воспользуется предоставляемой под сказкой и введет всю команду вручную, то редактор не даст ему так про сто двинуться дальше, если в элементарном синтаксисе данной команды будет ошибка, выдав сообщение «Ошибка компиляции».
    Еще одним серьезным достоинством редактора Visual Basic for
    Applications 6.3 является наличие прекрасной справочной системы. По ставив курсор на любую команду или название объекта Visual Basic for
    Applications и нажав клавишу
    F1, можно получить подробную справку о том, зачем нужна эта команда, каков ее синтаксис и даже посмотреть пример ее использования и скопировать его себе, если необходимо.
    Подобная дружественность редактора Visual Basic for Applications дает прекрасную возможность для самостоятельного изучения этого язы ка программирования.
    Поставив перед любой командой знак апострофа, можно ее за комментировать, т. е. исключить из выполнения. В этом случае Visual
    Basic for Applications не будет ее выполнять. Кроме того, после знака апо строфа можно написать пояснения к соответствующей части программы для себя и других программистов. Все комментарии отображаются в ре дакторе Visual Basic for Applications зеленым цветом.
    Нажав на соответствующий элемент (кнопку, поле ввода, пере ключатель и др.) и нарисовав затем мышкой этот элемент на поле фор мы, можно поместить его на форму. Двойной щелчок на помещенном на форму элементе открывает окно программ пользовательской формы. В
    нем можно написать программу, которая будет выполняться при актива ции соответствующего элемента.
    Можно также выбрать другие действия, которые надо выполнить,
    чтобы запустить такую программу, — события — но об этом позже. Вооб ще, у каждой формы есть окно ее программ — реакций элементов на со бытия, хотя оно может быть и пустым.
    В случае, если выбрать какой нибудь элемент формы, а из его кон текстного меню пункт
    Properties, то откроется «Окно свойств». Здесь можно задать все доступные свойства каждого элемента (к примеру, его цвет, цвет границы, надпись, состояние — доступно/недоступно для из менений), поместить на элемент картинку из внешнего файла. Все эти свойства также можно задавать программно, однако некоторые, вроде той же картинки, стоит задавать только в этом окне.
    Окно «
    Просмотр объектов», вызываемое кнопкой F2, является кратким справочником по всем возможным свойствам и методам (т.е.
    действиям, командам) объектов Visual Basic for Applications.
    Можно посмотреть, какие свойства или методы доступны для каждого объекта, какие объекты в принципе существуют в Visual Basic for
    Applications, вызвать справочный файл для каждого объекта, свойства или метода.
    Все модули, входящие в состав проекта, можно сохранить в текс товом файле. Модуль будет сохранен в текстовом файле с расширением
    .BAS. Можно просто перетащить название модуля в окно «Проводника»
    Windows, удерживая левую кнопку мыши, — редактор Visual Basic for
    Applications поддерживает механизм Drag'n'Drop.
    Использование редактора Visual Basic
    261 262
    Использование редактора Visual Basic

    Отладка программы
    В Visio 2003 редактор Visual Basic for Applications обладает широки ми возможностями отладки программы, т. е. поиска в ней алгоритмиче ских и языковых ошибок.
    Следует учесть, что язык Visual Basic for Applications не компилиру емый, а интерпретируемый (готовая программа представляет собой текст исходного кода, хранящийся в шаблоне или документе, который перево дится в машинные коды при каждом ее запуске, в то время как конечный продукт средств создания программ на остальных языках программиро вания представляет собой файл с исполняемым машинным кодом).
    Именно по этой причине после завершения написания кода и ус пешной его отладки программа готова к использованию.
    Для запуска на выполнение готовой или записанной программы из редактора Visual Basic for Applications необходимо нажать клавишу
    F5.
    Программа начнет выполняться, и, если в ней вдруг найдутся ошибки в записи команд или обращения к неизвестным командам, будет выдано соответствующее сообщение.
    В случае, если возникает ошибка вследствие неправильного ис пользования команд, то редактор Visual Basic for Applications выдает диа логовое окно, в котором приводится описание ошибки.
    Через меню команд
    Debug можно перейти в режим отладки про граммы — специального состояния редактора Visual Basic for Applica tions, в котором программа может исполняться построчно, а програм мист имеет возможность видеть значения всех переменных программы и даже принудительно задавать эти значения. Также в режим отладки мож но перейти из редактора Visual Basic for Applications, поставив курсор в текст программы и нажав клавишу
    F8.
    В режиме отладки программисту доступны следующие возможно сти:
    Пошаговое исполнение программы
    Выполняются все команды последовательно, но выполнение каж дой команды требует нажатия кнопки
    F8. В случае, если программа где то выдает ошибку алгоритма, то можно посмотреть, на каком конкретно этапе это происходит. При пошаговом исполнении в редакторе желтым цветом подсвечивается команда, которая будет выполнена следующей.
    Просмотр значений переменных
    Подведя в режиме отладки курсор к имени любой переменной,
    можно увидеть ее значение. При дальнейшем выполнении программы значения переменных в этом окне принимают те значения, которые они имеют в программе. Это очень полезно для отладки алгоритма програм мы, когда необходимо найти ошибку во внутренней логике программы,
    связанную с неправильной или недостаточно точной разработкой поряд ка действий.
    Точки останова
    В случае, если программа длинная, то проходить по всем ее строч кам с помощью кнопки
    F8 — занятие не слишком интересное и прият ное. В этом случае лучше использовать точки останова — отметки в тек сте программы, где ее исполнение должно остановиться, а сама программа перейдет в режим отладки. Для задания точки останова нуж но щелкнуть левой кнопкой мыши на сером левом поле окна модуля, и тогда появится коричневая строка с кружочком на месте точки останова.
    Начиная с этого места, программа будет выполняться пошагово по нажатию кнопки
    F8. Отказаться от пошагового выполнения можно путем нажатия кнопки
    F5. Точки останова полезны, когда нужно лока лизовать ошибочное место в программе, особенно если оно находится в середине текста или не единичное.
    Окно контрольного значения
    В этом окне можно задать определенное выражение, значение ко торого будет подсчитываться параллельно с выполнением программы.
    Кроме того, выделив в режиме отладки какое нибудь выражение и нажав
    Shift+F9, можно увидеть его значение, а также добавить это выражение в окно контрольного значения и отслеживать его дальнейшие изменения.
    Такая возможность необходима, к примеру, при отладке длинной программы с множеством арифметических выражений, одно из которых дает ошибку. С помощью этого окна можно отследить, когда и при изме нении какого параметра значение выражения станет неприемлемым.
    Окно отладки
    В текст программы можно вставить специальную команду
    Debug.Print (a+b, к примеру). Тогда при выполнении этой команды в
    «Окно отладки» будет печататься то, что задано в ее параметрах. Возмож ности применения этого окна многообразны. В него могут выводиться сообщения в случае выполнения какого либо условия. Могут отобра жаться и промежуточные результаты вычислений для контроля их пра вильности — чтобы не смотреть и не искать нужное выражение в окнах
    «
    Локальные переменные» или «Контрольное значение», а видеть их сразу на экране.
    Использование редактора Visual Basic
    263 264
    Использование редактора Visual Basic

    Окно отладки можно использовать даже как маленький калькуля тор или командную строку, и тогда при нажатии
    Enter после ввода ко манды она будет тут же выполнена! Надо только перед самой командой писать слово
    Print, и тогда команда выдаст результат в этом же окне.
    Стек вызова
    В этом окне отображается структура программы, состоящей из не скольких подпрограмм — процедур или функций, а также показывается,
    какие переходы возможны между этими подпрограммами.
    В случае, если программа сложная и большая, то разобраться, ка кая подпрограмма вызывает ту или иную подпрограмму, достаточно трудно — для этого и стоит использовать «
    Стек вызова», в котором все изображено наглядно.
    В режиме отладки возможен принудительный переход к какой либо команде для того, чтобы дальнейшее выполнение программы пош ло именно с нее. Для этого надо просто перетащить мышкой по серой по лосе слева указатель в виде желтой стрелки на нужное место.
    Настройка вызова программы
    Когда программа написана и отлажена, необходимо придать ей
    «товарный вид» — убрать лишние команды и модули, создать способ вы зова программы (кнопку или пункт меню) или панель инструментов для кнопок. Без этого даже с очень хорошо написанной программой сможет работать лишь ее создатель, да и то не всегда. К тому же красивое оформ ление всегда радует глаз.
    Для начала нужно просмотреть весь код и выкинуть все лишнее —
    закомментированные ненужные команды, просто излишние коммента рии. Потом следует определить, какие модули и формы являются компо нентами готовой программы, а какие, возможно, были написаны для других программ или в качестве экспериментальных, и запомнить их на звания.
    Не стоит забывать и об информативном руководстве для пользо вателя, особенно если программа будет распространяться через Интер нет. Лучше всего такое руководство оформить в отдельном текстовом файле.
    Советы
    Команда
    On Error Resume Next — обработчик ошибок. При воз никновении ошибки в тексте (связанной, скажем, с обращением к несу ществующему объекту) он продолжит выполнение программы с той ко манды, которая следует за вызвавшей ошибку. Обработчик ошибок мо жет также выглядеть как
    On Error GoTo метка, и тогда при ошибке про изойдет переход к указанной в нем метке, а программа продолжит выполняться именно с нее.
    Для того, чтобы ускорить исполнение программы, работающей с текстом, в ее начало нужно поставить команду
    Application.ScreenUpdating
    = False, а в конец — Application.ScreenUpdating = True (если только не тре буется контролировать происходящие изменения). Эти команды позво ляют системе не тратить время и силы на постоянное обновление экрана и отображение изменений. Но если все же нужно обновить экран, то сле дует использовать команду
    Application.ScreenRefresh.
    На сайте www.microsoft.ru/offext можно найти огромное число ма кросов и шаблонов. Изучение их текста помогает освоить Visual Basic for
    Applications, узнать много новых приемов и команд. Можно даже послать на конкурс свою программу макрос, а если она будет признана достой ной, то и выиграть приз!
    В случае, если исходный текст программы на Visual Basic for
    Applications закрыт от просмотра паролем, а вы его забыли, то не огорчай тесь: в Интернет по адресу www.passwords.ru есть программа Advanced
    VBA Password Recovery, позволяющая восстановить забытый пароль. Ее английская версия требует оплаты и регистрации, а русская — бесплатна).
    Во многих программах для Windows используется такой элемент,
    как
    ProgressBar — индикатор, показывающий течение того или иного процесса. Причем он есть практически во всех программах инсталлято рах. К сожалению, в VBA этот элемент отсутствует, но его можно создать самостоятельно. Делается он следующим образом (предполагается, что есть часть программы, в которой выполняется продолжительный цикл, т.
    е. известное число однотипных операций). Создаем небольшую форму и помещаем на нее надпись с пояснительным текстом (в частности, Label1)
    и две другие (скажем, Label2 и Label3), низкие и широкие, располагая их одну над другой. Зададим этим формам, к примеру, следующие коорди наты и размеры:
    Label2: Top — 45, Left — 15, Height — 15, Width — 250
    Label3: Top — 45, Left — 15, Height — 15, Width — 0
    Для Label2 укажем в качестве фонового цвета серый, а для Label3
    зеленый.
    Для того, чтобы форма появилась на экране, но могла быть про граммно модифицируема во время своего отображения, помещаем в нее следующий текст:
    Использование редактора Visual Basic
    265 266
    Использование редактора Visual Basic

    Private Sub UserForm_Activate()
    …остальной текст программы, которая должна выполняться во время отображения ProgressBar’а…
    Unload Me
    End Sub
    Все, что находится в теле этого обработчика, будет выполняться в то время, как форма находится на экране. По окончании выполнения программы форма будет выгружена, однако если предполагается продол жение работы с ней, то выгружать ее не обязательно. В это время ника кие другие события формой обрабатываться не будут.
    Ширину любой надписи можно изменять программно. Поэтому для отображения
    ProgressBar вставим в текст строки, изменяющие ши рину надписи
    Label3. Например, некий цикл, который нужно снабдить
    ProgressBar, в программе выполняется n раз. Тогда ширина надписи
    Label3 будет определяться командой в теле этого цикла по формуле:
    Label3.Width = (scet / n)*250, где scet — счетчик цикла, а 250 — ширина надписи
    Label2. После каждой такой команды следует вставлять инст рукцию
    Me.Repaint, чтобы перерисовать форму с учетом новых парамет ров третьей надписи, поскольку автоматической перерисовки до полно го отображения формы не происходит — это совершится тогда, когда закончится обработка события
    UserForm_Activate() и форма будет выгру жена. В случае, если форма с
    ProgressBar должна долго находиться на эк ране без изменений, то рекомендуется почаще использовать команду
    Me.Repaint, так как без перерисовки внешний вид формы может быть ис порчен окнами других приложений.
    Итак, текст для формы с ProgressBar должен иметь следующий вид:
    Private Sub UserForm_Activate()
    Me.Repaint
    For t=1 to n
    ‘n — количество необходимых выполнений команд цикла
    … … … … нужные команды программы в цикле
    Label3.Width = ((t / n) * 250)
    Me.Repaint
    Next t
    Unload Me
    End Sub
    В то место основной программы, в котором должен находиться цикл с ProgressBar, следует поместить команду вызова этой формы
    (здесь:
    UserForm.Show), не забыв объявить передаваемые в цикл и из цикла переменные основной программы как Public. Цикл как бы «выно сится за пределы» основной программы и помещается в обработчик со бытия
    UserForm_Activate.
    Разумеется, текст можно изменять и улучшать. Например, не сколько раз использовать
    ProgressBar в одной форме, каждый раз обну ляя ширину третьей надписи. А еще можно поместить на одну форму не сколько обработчиков
    ProgressBar, где один из них показывает выполнение всего задания, а другой — его текущей части. В общем, есть простор для творчества.
    Хранение в документе скрытой информации
    Иногда в документ нужно записать какую нибудь информацию
    «для внутреннего пользования», в частности такую, которая позволила бы при следующей обработке документа программой использовать опре деленные предыдущие данные и сделать такую запись с помощью свой ства Variable:
    ActiveDocument.Variables.Add Name:="x1",
    Value:="Первая переменная"
    ActiveDocument.Variables.Add Name:="x2",
    Value:=12
    Прочитать эти переменные можно с помощью похожей функции:
    y1 = ActiveDocument.Variables("x1").Value y2 = ActiveDocument.Variables("x2").Value
    Таким способом имеет смысл помещать в документ служебную информацию для макросов: сохраненные параметры, скрытые коммен тарии и др. Но не думайте, что для надежного сокрытия какой нибудь се кретной информации достаточно поместить ее в переменные. С помо щью функции
    For Each per In ActiveDocument.Variables
    Debug.Print per.Name + " " + per.Value
    Next per абсолютно все переменные будут благополучно помещены в окно отладки, где их можно легко и просто просмотреть.
    Использование редактора Visual Basic
    267 268
    Использование редактора Visual Basic

    Глава 9.
    Прием событий
    Итак, посредством Microsoft Office Visio 2003 вы можете «улуч шить» ваши проекты и решения, используя встроенный в это приложе ние язык программирования Microsoft Visual Basic for Applications (VBA)
    версии 6.3.
    Visual Basic — простейшее средство разработки для создания боль шинства типов приложений, поэтому неудивительно, что оно позволяет проще всего реализовать прием событий. Даже, если вы активный сто ронник C++, особенно при создании собственных интерфейсов, вы должны знать, что на Visual Basic гораздо легче разрабатывать клиент ские приложения в Microsoft Office Visio 2003, которые принимают собы тия хотя бы от таких серверов, как Internet Explorer 6.0. К примеру, авто матизируя сервер на Visual Basic, вы прежде всего должны объявить переменную типа сервера, который вы автоматизируете: вы просто зада ете зарезервированное слово
    WithEvents, чтобы сообщить о том, что хо тите получать события от данного сервера.
    Глава 10.
    Мониторинг событий
    С появлением элемента управления
    WebBrowser control в Microsoft
    Internet Explorer создание Интернет приложений значительно упрости лось. Для того, чтобы добавить функции просмотра Web узлов в свое приложение, достаточно использовать управляющий элемент
    WebBrow
    ser. Он позволяет обращаться к любому URL адресу, перемещаться по списку истории посещений или переходить непосредственно на домаш нюю страницу пользователя. К вашим услугам любые возможности обо зревателя Internet Explorer. С помощью WebBrowser вы также способны автоматически управлять Internet Explorer 6.0.
    Конечно, управление Internet Explorer 6.0 — это прекрасно. Но ес ли вы не знаете, что делает Internet Explorer в каждый конкретный мо мент, значит, по прежнему не способны на полный контроль. Поэтому
    Internet Explorer предоставляет интерфейс событий
    1   ...   21   22   23   24   25   26   27   28   ...   35


    написать администратору сайта