Введение в программирование на VBA - eDrive

Введение в программирование на VBA - eDrive Введение в программирование на VBA - eDrive

edrive.narod.ru
from edrive.narod.ru More from this publisher
06.01.2015 Views

32 Примеры Sub ПростаяПроцедура () ' Вызываются один за другим два ранее описанных макроса Макрос1 Макрос2 End Sub Sub ВыделитьУдалитьТекст () Call ВыделитьТекст ‘ Вызов ранее описанных подпрограмм Call УдалитьТекст End Sub Sub ВставитьПереместитьУдалитьЛист () ВставитьЛист 1, 2 ‘ Вызовы подпрограмм с аргументами Call ПереместитьЛист (1, 2) УдалитьЛист книга := 2, лист := 1 End Sub Переменные и константы Первые шаги в программировании полезно сопровождать выводом на экран сообщений. Синтаксис сообщения имеет вид: MsgBox [( ]Текст[,Кнопки [,Заголовок]] [ )] Сообщение представляет собой текст в стандартном окне. Лексема MsgBox является именем функции Visual Basic, которая выводит на экран текст и может возвращать одну из констант, присвоенных нажатой в окне диалога кнопке. Примеры Sub ПростоеСообщение () MsgBox "Сообщаю, что все в порядке" MsgBox ("Сообщаю, что все в порядке") MsgBox "Сообщаю," & Chr (13) & "что все в порядке" End Sub Sub ВремяДатаИПробелы () MsgBox "Сейчас " & Now MsgBox "Сегодняшняя дата: " & Day (Date) & Space (2) _ & Month (Date) & Space (2) & Year (Date) End Sub Sub КонстантаЯзыка () MsgBox "Задание выполнено!", vbExclamation, "Операции с текстом" End Sub

33 Переменные и авторские константы перед использованием полезно объявлять: операторХранения Имя, а по ходу программы инициализировать: Имя = Значение. При этом значения авторских констант и начальные значения переменных задаются оператором присваивания (=). Этот и другие операторы связывают переменные и константы друг с другом и с вызовами процедур в операциях и выражениях. Значения, соответствующие дате и времени, ограничиваются с двух сторон символами #. Авторские константы, не изменяющиеся в ходе выполнения программы, обязательно объявляют с оператором хранения Const. Прочие переменные можно объявлять с оператором Dim или без объявления использовать в операциях. Объявленные внутри подпрограммы локальные, или личные, переменные «видимы» только внутри своей подпрограммы, недоступны из других подпрограмм, и их значения другим подпрограммам неизвестны. Поэтому в других процедурах можно создавать переменные с такими же именами. По завершении подпрограммы компьютер «забывает» их, освобождая память другим данным. Чтобы при повторном вызове подпрограммы личная переменная не забывала и восстанавливала свое значение, следует объявлять ее в подпрограмме с оператором Static. Чтобы переменная стала «видимой» изо всех процедур и функций модуля, ее объявляют в начальном разделе описаний модуля с оператором хранения Dim или Private, и переменная в этом случае называется переменной уровня модуля. Она «помнит» свое значение в пределах модуля в течение всего сеанса работы приложения. Переменная, «известная» всей программе, независимо от того, в начале какого модуля она объявлена, объявляется с оператором хранения Public и называется общей переменной. Наиболее простым способом ввода данных в программу служит функция языка Visual Basic InputBox (Текст [,Заголовок [,Умолчание [, X, Y]]] ) Она позиционирует в точке X, Y экрана окно диалога с приглашением Текст и возвращает введенный в это окно ответ пользователя. Примеры Sub ТеоремаПифагора () катет1 = 2: катет2 = 3 сообщение = "Гипотенуза имеет длину " MsgBox сообщение & Sqr (катет1 ^ 2 + катет2 ^ 2) End Sub Sub Дата () деньРождения = #2/12/69# ' месяц, день, год

33<br />

Переменные и а<strong>в</strong>торские константы перед использо<strong>в</strong>анием полезно<br />

объя<strong>в</strong>лять: операторХранения Имя, а по ходу программы инициализиро<strong>в</strong>ать:<br />

Имя = З<strong>на</strong>чение. При этом з<strong>на</strong>чения а<strong>в</strong>торских констант и <strong>на</strong>чальные<br />

з<strong>на</strong>чения переменных задаются оператором прис<strong>в</strong>аи<strong>в</strong>ания (=). Этот и другие<br />

операторы с<strong>в</strong>язы<strong>в</strong>ают переменные и константы друг с другом и с <strong>в</strong>ызо<strong>в</strong>ами<br />

процедур <strong>в</strong> операциях и <strong>в</strong>ыражениях. З<strong>на</strong>чения, соот<strong>в</strong>етст<strong>в</strong>ующие дате и<br />

<strong>в</strong>ремени, ограничи<strong>в</strong>аются с д<strong>в</strong>ух сторон сим<strong>в</strong>олами #.<br />

А<strong>в</strong>торские константы, не изменяющиеся <strong>в</strong> ходе <strong>в</strong>ыполнения<br />

программы, обязательно объя<strong>в</strong>ляют с оператором хранения Const. Прочие<br />

переменные можно объя<strong>в</strong>лять с оператором Dim или без объя<strong>в</strong>ления<br />

использо<strong>в</strong>ать <strong>в</strong> операциях.<br />

Объя<strong>в</strong>ленные <strong>в</strong>нутри подпрограммы локальные, или личные,<br />

переменные «<strong>в</strong>идимы» только <strong>в</strong>нутри с<strong>в</strong>оей подпрограммы, недоступны из<br />

других подпрограмм, и их з<strong>на</strong>чения другим подпрограммам неиз<strong>в</strong>естны.<br />

Поэтому <strong>в</strong> других процедурах можно созда<strong>в</strong>ать переменные с такими же<br />

име<strong>на</strong>ми. По за<strong>в</strong>ершении подпрограммы компьютер «забы<strong>в</strong>ает» их,<br />

ос<strong>в</strong>обождая память другим данным.<br />

Чтобы при по<strong>в</strong>торном <strong>в</strong>ызо<strong>в</strong>е подпрограммы лич<strong>на</strong>я перемен<strong>на</strong>я не<br />

забы<strong>в</strong>ала и <strong>в</strong>осста<strong>на</strong><strong>в</strong>ли<strong>в</strong>ала с<strong>в</strong>ое з<strong>на</strong>чение, следует объя<strong>в</strong>лять ее <strong>в</strong><br />

подпрограмме с оператором Static.<br />

Чтобы перемен<strong>на</strong>я стала «<strong>в</strong>идимой» изо <strong>в</strong>сех процедур и функций<br />

модуля, ее объя<strong>в</strong>ляют <strong>в</strong> <strong>на</strong>чальном разделе описаний модуля с оператором<br />

хранения Dim или Private, и перемен<strong>на</strong>я <strong>в</strong> этом случае <strong>на</strong>зы<strong>в</strong>ается<br />

переменной уро<strong>в</strong>ня модуля. О<strong>на</strong> «помнит» с<strong>в</strong>ое з<strong>на</strong>чение <strong>в</strong> пределах модуля <strong>в</strong><br />

течение <strong>в</strong>сего сеанса работы приложения. Перемен<strong>на</strong>я, «из<strong>в</strong>ест<strong>на</strong>я» <strong>в</strong>сей<br />

программе, неза<strong>в</strong>исимо от того, <strong>в</strong> <strong>на</strong>чале какого модуля о<strong>на</strong> объя<strong>в</strong>ле<strong>на</strong>,<br />

объя<strong>в</strong>ляется с оператором хранения Public и <strong>на</strong>зы<strong>в</strong>ается общей переменной.<br />

Наиболее простым способом <strong>в</strong><strong>в</strong>ода данных <strong>в</strong> программу служит<br />

функция языка Visual Basic<br />

InputBox (Текст [,Заголо<strong>в</strong>ок [,Умолчание [, X, Y]]] )<br />

О<strong>на</strong> позиционирует <strong>в</strong> точке X, Y экра<strong>на</strong> окно диалога с приглашением Текст<br />

и <strong>в</strong>оз<strong>в</strong>ращает <strong>в</strong><strong>в</strong>еденный <strong>в</strong> это окно от<strong>в</strong>ет пользо<strong>в</strong>ателя.<br />

Примеры<br />

Sub ТеоремаПифагора ()<br />

катет1 = 2: катет2 = 3<br />

сообщение = "Гипотенуза имеет длину "<br />

MsgBox сообщение & Sqr (катет1 ^ 2 + катет2 ^ 2)<br />

End Sub<br />

Sub Дата ()<br />

деньРождения = #2/12/69#<br />

' месяц, день, год

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!