Методические указания по выполнению лабораторных работ



Скачать 245.08 Kb.
Дата12.11.2016
Размер245.08 Kb.



Методические указания по

выполнению лабораторных работ

на алгоритмическом языке VBA

в электронных таблицах Excel.

ОГЛАВЛЕНИЕ


VBA в Excel 5

Основные синтаксические конструкции VBA 6

Типы данных VBA 6

Операции. 11

Встроенные функции 11

Операторы языка VBA 13


13


Подпрограмма-процедура 17

Начало работы с VBA в EXCEL. 19

Создание пользовательской формы VBA. 20

20


Пример программы с использованием операторов ветвления. 26

Пример программы с использованием пользовательской функции. 31


VBA в Excel


Электронные таблицы Excel широко используются во многих областях. Хотя набор стандартных функций электронных таблиц достаточно широк, для некоторых задач он либо недостаточен, либо выполнение таких задач трудно реализуемо стандартными способами. В таких случаях удобно использовать встроенный язык программирования VBA.

Visual Basic for Applications (VBA) — упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office, а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW. VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic. В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.

К достоинствам языка можно отнести лёгкость освоения, благодаря которой приложения могут создавать даже обычные пользователи. К особенностям VBA можно отнести выполнение программного кода именно в среде офисных приложений.

Недостатком являются проблемы с обратной совместимостью разных версий. Эти проблемы в основном связаны только с тем, что код программы обращается к функциональным возможностям, появившимся в новой версии программного продукта, которые отсутствуют в старой. Также к недостаткам часто относят и слишком высокую открытость кода для случайного изменения, тем не менее, многие программные продукты (например, Microsoft Office) позволяют пользователю использовать шифрование исходного кода и установку пароля на его просмотр.



Основные синтаксические конструкции VBA


К основным конструкциям языка VBA относятся переменные, константы и служебные слова. Из этих основных, базовых для любого алгоритмического языка конструкций, строятся в свою очередь более сложные конструкции – операторы, процедуры, функции и, в конечном итоге, программы. Познакомимся с этими конструкциями подробнее.

Переменные. Переменной называется область оперативной памяти, предназначенная для хранения какого-либо значения. Содержимое этой области памяти (значение переменной) может меняться во время выполнения программы. Каждая переменная имеет собственное и - первым символом имени обязательно должна быть буква;

- имя может содержать только буквы, цифры и знак подчеркивания («_»);

- длина имени не должна превышать 255 символов;

- в одной и той же подпрограмме (процедуре или функции) не могут быть объявлены две переменные с одним и тем же именем.

Каждая переменная при создании должна получить определенный тип. Тип переменной характеризует длину, способ представления и диапазон изменения тех значений, которые могут храниться в переменной

Константы - имена, идентифицирующие некоторые неизменяемые числовые значения или строки текста. В отличие от переменных их нельзя изменить или назначить им новые значения. В VBA различают внутренние или системные константы, которые имеют префикс vb, например vbOK, и символические или определяемые пользователем с помощью ключевого слова Const константы. Имена констант имеют те же ограничения, что и имена переменных, тип данных, хранящихся в константе, задается так же, как для переменных.

Типы данных VBA


Типы данных - это определенные виды данных, которые VBA сохраняет и может манипулировать.

Тип Date


VBA использует тип Date для хранения дат и времени.

При работе с этим типом данных следует иметь ввиду, что VBA-типы Date не являются такими же типами, как в рабочих листах Excel, хотя во многом и схожи с ними. Например, базовой датой для VBA-типа Date является 30 декабря 1899 года, а в Excel - 1 января 1900 года.



VBA-тип Date является типом последовательных дат. VBA использует отрицательные числа для представления дат ранее базовой даты (30 декабря 1899), и положительные - для дат после базовой. Число 0 представляет саму дату 30.12.1899.

В значении последовательной даты целая часть - это общее число дней от базовой даты. Дробная часть (цифра справа от десятичного знака) - эти цифры обозначают время дня как часть дня. Один час - это 1/24 дня, одна минута - 1/1440 дня, секунда - 1/86400 дня.


Числа


VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency.

Они используются для хранения чисел в различных форматах, в зависимости от конкретного типа.


Целые числа


Integer - это целое число без дробной части (целые числа никогда не содержат десятичного знака, даже если десятичная часть равна нулю).

VBA предоставляет три типа целых данных: Byte, Integer, Long.


Byte - наименьший из трех типов целых данных, предназначен для хранения числе от 0 до 255. Этот тип обычно используют для хранения двоичных данных.
Integer использует диапазон целых чисел от -32768 до 32767.
Long использует диапазон целых чисел от -2147483648 до 2147483647.
Byte, Integer, Long типы требуют меньше памяти для хранения чисел, чем другие численные типы данных VBA, а математические операции и операции сравнения над числами указанных типов быстрее, чем эти же операции для численных типов данных с плавающей точкой.

VBA автоматически преобразует данные типов Byte, Integer, Long в текст, когда они выводятся на экран, используя такие процедуры, как MsgBox.


Числа с плавающей точкой


Числа с плавающей точкой могут иметь любое число цифр до или после десятичной точки (в пределах границ конкретного типа данных). Иногда их называют действительными числами. Этот тип данных используют тогда, когда требуется хранить числа, имеющие дробную часть.

VBA имеет два типа данных с плавающей точкой: Single, Double.


Single используется для хранения:
отрицательных чисел от -3,402823*1038 до -1,401298*10-45
и положительных от 1,401298*10-45 до 3,402823*1038.
Числа, хранимые с использованием типа Single, называются числами одинарной точности.
Double используется для хранения:
отрицательных чисел от -1,79769313486232*10308 до -4,94065645841247*10-324
и положительных от 4,94065645841247*10-324 до 1,79769313486232*10308.
Числа, хранимые с использованием типа Double, называются числами двойной точности.
Следует иметь ввиду, что операции, выполняемые над числами с плавающей точкой, немного медленнее подобных операций над другими численными типами данных. Кроме того, числа, хранимые как типы данных с плавающей точкой, могут быть подвержены ошибкам округления. Если число с плавающей точкой очень большое или очень малое, VBA отображает его в экспоненциальном представлении.

В экспоненциальном представлении значения записываются без начальных и конечных нулей, и слева от десятичного знака имеется только одна цифра. Число умножается на 10 в некоторой степени, чтобы показать, где на самом деле находится десятичный знак. Следует помнить, что отрицательная степень приводит в результате к меньшему числу, а положительная - к большему. Вместо надстрочного символа показателя степени используется буква Е:


4.1Е3=4100
2.01Е-2=0.0201

Тип данных Currency


Это число с фиксированной точкой, т.е., десятичная точка всегда находится в одном и том же месте - справа от точки всегда имеются четыре цифры. Этот тип данных используется при денежных вычислениях, когда требуется высокая точность.

Currency хранит числа в диапазоне от -922337203685477,5808 до 922337203685477,5807.


Текстовые строки


Любые текстовые данные, сохраняемые в VBA, называются строками. Для их хранения предназначен тип данных String.

Строка может содержать текстовые символы любых типов: буквы, цифры, знаки пунктуации, разделительные символы и пр.

Строки всегда заключаются в двойные кавычки.

Существует две категории строк: строки переменной длины и строки фиксированной длины. По умолчанию в VBA все строки переменной длины.

Следует сказать, что тип данных String является очень важным типом, т.к., как правило, информация, вводимая пользователем - это строковые данные. Кроме того, поскольку на экране монитора отображается только текст, то все другие типы данных должны быть преобразованы в строковые данные перед выводом на экран.

Логические значения


VBA-программа принимает то или иное "решение", основываясь на различных условиях. Любое условие может принимать два значения: True (Истина) или False (Ложь). Логические значения True и False называются булевскими значениями, а тип данных - Boolean.

Булевские значения получают как результат операции сравнения. Операции сравнения имеет место при сравнении одного с другим, например, при сравнении двух чисел для определения, которое из них больше.


Тип данных Variant


Это особый тип данных, который может сохранять любые типы, за исключением типа Object. VBA использует этот тип данных для всех переменных, если только они не объявлены явно.

Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. VBA использует для данных типа Variant наиболее компактное представление, возможное для конкретных значений, находящихся в данных.

Несмотря на то, что типы Variant удобны и избавляют от некоторой части работы при написании кода, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа. Следует избегать использования переменных Variant.
Подведем итог вышесказанному:


Тип данных

Описание и диапазон значения

Byte

Хранение положительных чисел от 0 до 255

Boolean

Хранение логических значений: True, False

Currency

Хранение чисел для точных вычислений в диапазоне
от -922337203685477,5808 до 922337203685477,5807

Date

Хранение даты и времени.
Даты от 1.01.100 до 31.12.9999
Время от 00:00:00 до 23:59:59

Double

Хранение чисел двойной точности
от -1,79769313486232*10308 до -4,94065645841247*10-324
от 4,94065645841247*10-324 до 1,79769313486232*10308

Integer

Хранение целых чисел от -32768 до 32767

Long

Хранение целых чисел от -2147483648 до 2147483647

Single

Хранение чисел одинарной точности
от -3,402823*1038 до -1,401298*10-45
от 1,401298*10-45 до 3,402823*1038

String

Хранение текста длиной до 2 млрд. символов

Variant

Хранение любого типа данных









Массивы

Массивы - последовательности логически связанных элементов одного типа, которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Имена массивов имеют те же ограничения, что и имена переменных, тип данных, хранящихся в массиве, задается так же, как для переменных. Однако если массив имеет тип Variant, его отдельные элементы могут содержать данные разных типов.

В VBA существуют два вида массивов: массив фиксированного размера и динамический массив, размер которого может изменяться во время выполнения программы с помощью специальных операторов.

При объявлении массива фиксированной длины за его именем в круглых скобках задаются через запятую верхние границы каждой размерности, не превышающие максимального значения типа Long. По умолчанию нижняя граница равна 0, но ее можно задать явно с помощью ключевого слова To:

ab (10 To 20) As Integer



Операции.

В VBA существуют следующие типы операций:

Арифметические операции, используемые для выполнения математических вычислений: ^, *, /, \, Mod, +, -. Здесь \ - Возвращает результат целого деления двух чисел, Mod - возвращает остаток при целом делении двух чисел (значение по модулю). Операция возведения в степень обозначается крышкой , например b=a^2.
Операции сравнения, используемые для выполнения операций сравнения

< , > , <=, >= , = , <> ;
Логические операции, используемые для выполнения логических операций
And - Возвращает результат конъюнкции (логического И) для двух выражений с операциями сравнения, либо выполняет поразрядное сравнение двух числовых выражений:

Eqv - Используется для проверки логической эквивалентности двух выражений с операциями сравнения, либо выполняет поразрядное сравнение двух числовых выражений:

Imp - Выполняет операцию логической импликации для двух выражений с операциями сравнения, либо выполняет поразрядное сравнение двух числовых выражений:

Not - Выполняет над выражением операцию логического отрицания, а также поразрядное изменение значений каждого разряда переменной:

Or - Выполняет бинарную операцию логического ИЛИ (сложения).

Xor - Выполняет бинарную операцию исключающего ИЛИ.


Встроенные функции


В VBA имеется большой набор встроенных функций, использование которых существенно упрощает программирование. Эти функции можно разделить на следующие основные категории:

- математические функции;

- функции проверки типов;

- функции преобразования типов выражений;

- функции обработки строк;

- функции времени и даты;



- функции выбора.

Математические функции

Abs(x) – модуль числа x.

Atn(x) -arctg x – арктангенс x.

Cos(x) - сos x – косинус x;Sin(x) - sin x – синус x.

Sqr(x)- корень квадратный числа x.

Tan(x) - tg x – тангенс x.

Exp(x) - экспонента (е в степени x).

Fix(x) - отбрасывает дробную часть числа x.

Int(x) - округляет вещественное число x до целого в меньшую сторону.

Log(x) -ln x – натуральный логарифм x.

Rnd() -генерирует случайное число от 0 до 1.

Rnd(x) - генерирует случайное число от 0 до x.

Функции обработки строк

Функция

Описание

Mid (<строка>, <начало>[,<длина>])

Возвращает из строки подстроку указанной длины, начиная с заданного символа. Если длина не указана, то возвращается вся подстрока, начиная от заданного символа

Left (<строка>,<длина>)

Возвращает из заданной строки подстроку указанной длины, начиная с левого края строки

Right (<строка>,<длина>)

Возвращает из заданной строки подстроку указанной длины, начиная с правого края строки

Len (<строка>)

Возвращает длину указанной строки

InStr (<начало>,<исходная строка>,<искомая подстрока>,<тип сравнения>)

Ищет подстроку в заданной строке, начиная с указанного символа.Тип сравнения:0–с учетом регистра (vbBinary-Compare)1–без учёта регистра(vbTextCompare)

Trim (строка>)

Удаляет пробелы из начала и конца заданной строки

Ltrim (<строка>)

Удаляет все пробелы из начала заданной строки

Rtrim (<строка>)

Удаляет все пробелы из конца заданной строки

Space (<количество>)

Повторяет пробел указанное количество раз

String (<количество>,<символ>)

Повторяет заданный символ указанное количество раз

Lcase (<строка>)

Преобразует в заданной строке все прописные буквы в строчные

Ucase (<строка>)

Преобразует в заданной строке все строчные буквы в прописные

StrReverse (<строка>)

Изменяет последовательность символов в заданной строке на обратную

Asc (<Символ>)

Возвращает код символа

Chr (<Код>)

Возвращает символ по его коду

Str (<Число>)

Преобразует заданное число в строковое представление числа

Val (<Строка>)

Преобразует строку в число

Операторы языка VBA




Оператор присваивания




Оператор присваивания в VBA обозначается одним знаком равно =.



Операторы ветвления.
VBA поддерживает следующие конструкции операторов ветвления.
IF < условие > THEN < оператор >

Позволяет выполнить один или несколько операторов, если условие истинно. Можно использовать однострочный или блочный вариант. Если необходимо выполнить более одной строки кода, нужно использовать блочный вариант с оператором End IF.



Синтаксис:
    IF < условие > Then < оператор (код) >
    IF < условие > Then
      < блок кода >
    End IF

Примеры:
    IF x <5 Then f = 1

    End IF



IF <условие> THEN <оператор 1> ELSE <оператор 2> End IF

Позволяет определить два блока операторов. Первый выполняется, когда условие истинно, а второй, когда оно ложно.



Пример:
    If d >= 0 Then
      x1 = (-b+sqrt(d))/(2*a)

x1 = (-b+sqrt(d))/(2*a)

    Else


      f=0
    End IF

Пример ветвления по трём и более направлениям:
    IF < условие 1 > Then
       < блок кода 1 >
       ElseIF < условие 2 > Then
       < блок кода 2 >
       ElseIF < условие 3 > Then
       < блок кода 3 >
     Else < блок кода 4>
    End IF

В блоке IF допускается любое количество предложений ElseIF, но ни одно не может находиться после предложения Else.



Пример:
    IF x = -1 Then
        y = 2
     ElseIF x = 0 Then
        y = 0
     ElseIF x = 1 Then
        y = 1
     Else y = x*x  
    End IF

Циклы используются для организации повторного выполнения блоков кода. Любой цикл состоит из двух частей: условие цикла и тело цикла. У любого цикла есть параметр. Параметр цикла – это переменная, которая изменяется в теле цикла, а также участвует в условии его окончания.



DO … LOOP
Позволяет выполнить блок кода неопределенное количество раз.
Существует несколько вариантов этого оператора, но в каждом из них проверяется условие и по результатам проверки определяется необходимость продолжения цикла. Условие должно быть значением или выражением, которое может быть True или False.

Циклы с предусловием

DO WHILE <условие> … LOOP
Оператор DO WHILE <условие> … LOOP позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.

Пример:
    Dim X As Integer ‘Описание переменной X целого типа.
    X = 200 ‘Начальное значение переменной X.
    DO WHILE X >0 ‘Пока Х > 0, цикл будет повторятся.
      X = X \10 ‘Изменение значения переменной Х.
    LOOP ‘Конец цикла.
DO UNTIL <условие> … LOOP
Оператор Do Until <условие> … Loop позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно False. Как только условие цикла станет равно True, выполнение цикла прекратится.

Пример:
    Dim X As Integer ‘Описание переменной X целого типа.
    X = 300 ‘Начальное значение переменной X.
    Do Until X =0 ‘До тех пор, пока Х <= 10, цикл повторяется.
      X = X \2 ‘Изменение значения переменной Х.
    Loop ‘Конец цикла.

Циклы с постусловием

DO … LOOP WHILE <условие>
Если операторы цикла необходимо выполнить хотя бы раз, то нужно применять цикл с постусловием.

Инструкция Do … Loop While <условие> позволяет проверить условие после выполнения операторов тела цикла.

Цикл будет повторяться до тех пор, пока выражение в условии цикла имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.

Пример:
    Dim X As Integer
    X = 0
    Do
     X = X + 2
    Loop While X <= 100 ‘До тех пор, пока Х <= 10, цикл повторяется
DO … LOOP UNTIL <условие>
В отличие от предыдущего этот цикл будет выполняться до тех пор, пока значение условия равно False.

Пример:
    Dim X As Integer
    X = 0
    Do
      X = X + 2
    Loop Until X > 20 ‘Как только переменная станет больше десяти, выполнение цикла прекратится.

Цикл по счетчику (безусловный цикл)

FOR … NEXT
Цикл с определенным количеством повторений. Цикл выполняется от начального до конечного значения параметра с заданным шагом.

Пример:

Dim X As Integer

X=0

For I = 1 To 10 Step 1 ‘повторять цикл от 1 до 5 с шагом 1.

X=X+I

Next I ‘конец цикла.

Exit For или Exit Do – досрочный выход из цикла.


   

Сложные (вложенные) циклы

Совокупность простых циклов, вложенных один в другой, называется сложным (вложенным) циклом. При конструировании сложных циклов необходимо руководствоваться следующими правилами: -


    нельзя войти во внутренний цикл, минуя вход внешнего цикла; -
    имена параметров простых циклов не должны повторяться в конструкции сложного цикла; -
    простые циклы не должны пересекаться в конструкции сложного цикла, то есть окончание внешнего цикла не должно предшествовать окончанию внутреннего цикла.

Примеры:
    For i = 1 to n
     For j = 1 to m
      A(i , j) = i+j
     Next j
    Next i



Подпрограмма-процедура

Можно упростить программирование, разбивая задачу на небольшие компоненты.

Процедуры позволяют разбивать программы на конечное число логических единиц, каждую из которых легче отладить, чем всю программу без процедур

Процедуры, разработанные для одной программы, могут выступать в качестве строительных блоков для других программ, обычно с небольшими изменениями или совсем без них

В VBA используется несколько видов процедур:

Процедуры Sub (не возвращают значения)

Процедуры Function (возвращают значения)

Процедуры Property (могут возвращать и присваивать значения), а также устанавливать ссылки на объекты.

Процедуры Sub

Процедура Sub (или подпрограмма) - это блок кода, который выполняется в ответ на событие. Разбивая код модуля на процедуры Sub, намного легче читать или модифицировать код приложения.

Синтаксис процедуры Sub таков:

[Private | Public][Static]Sub <Имя процедуры> (<аргументы>)

<Операторы>

End Sub

При вызове процедуры выполняются операторы между ключевыми словами Sub и End Sub. Процедуры Sub можно помещать в стандартные модули, модули классов и форм. По умолчанию процедуры Sub во всех модулях имеют атрибут public, который означает, что их можно вызывать из любого места приложения.



Общие процедуры

VBA содержит встроенные или стандартные функции, например, sqr, cos или chr. Кроме того, с помощью оператора Function можно писать собственные процедуры Function. Эти функции называют нестандартные или пользовательскими.


Синтаксис процедуры Function таков:
[Private|Public][Static]Function <имя процедуры> (<аргументы>) [As type <имя типа>]

<операторы>

End Function
Приведем конкретный пример:
Public Funcstion kub(b As integer) As Integer

i = b*b*b

kub = i

End Function

Как и процедура Sub, процедура Function является самостоятельной и может принимать параметры, выполнять ряд операторов и изменять значения своих параметров. В отличие от процедуры Sub, имя процедуры Function может возвращать значение в вызывающую процедуру. Существуют три различия между процедурами Sub и Function:

Возвращаемое процедурой Function значение присваивается самому имени <имя процедуры> процедуры. Возвращаемое процедурой Function значение можно использовать в выражениях в программе.

Как и переменные процедуры Function имеют тип, который определяет тип возвращаемого значения. (В отсутствие ключевого слова As в операторе определения процедуры ей назначается по умолчанию тип variant.)

Вызов процедуры Function, или просто функции, в основном осуществляется заданием ее имени и параметров в правой части большого оператора или в составе выражения.

Вот, например, функция, вычисляющая гипотенузу прямоугольного треугольника при заданных катетах:



Function pifagor (A As Integer, В As Integer) As double

Hypotenuse = Sqr(A^2 + В^2)

End Function

В VBA процедура Function вызывается точно так же, как и любая встроенная функция:



s = pifagor(d,f )

Начало работы с VBA в EXCEL.


В Excel 2003 Редактор VBA открывается с помощью комбинации клавиш ALT+F11, либо с помощью меню: Сервис-макрос-редактор Visual Basic.

Рис.1.
В Excel 2007 Редактор VBA открывается с помощью комбинации клавиш ALT+F11, либо с помощью вкладки Разработчик, на которой можно вызвать редактор Visual Basic и другие инструменты разработчика. Поскольку в Office 2007 вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив следующее:

На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры Excel.


Рис.2.

Рис.3.

Создание пользовательской формы VBA.




Далее, мы будем использовать так называемое визуальное программирование с помощью стандартных элементов управления (кнопка, строка редактирования, полоса прокрутки и т.д.). Наши программы будут обрабатывать события (например, щелчок мышью на элементе управления) связанные с этими элементами управления.

Пользовательская форма создается при помощи Insert-User Form.



Рис.4.
Затем на нее мышью перемещаются элементы управления с палитры Toolbox.


Элемент управления CommandButton (кнопка),

Элемент управления CommandButton (кнопка) — самый распространенный элемент управления в формах (см. рис. 4).



Рис.4 
Кнопки (объект CommandButton) на форме

Нажав мышью на кнопке (DoubleClick), мы попадаем в процедуру обработки события Click.

Рис.5 


Самые важные свойства кнопки:

  • Cancel — если для него установить значение True, то это значит, что кнопка будет нажиматься при нажатии на клавишу . Как правило, на такие кнопки помещаются надписи типа "Отмена", "Выход", "Вернуться в окно приложения". Однако кроме назначения клавише , ничего больше этой кнопке такое свойство не дает. Необходимо будет еще добавить код в обработчик события Click, например, такой:

  • Caption — надпись, которая будет на кнопке;

  • Default — такая кнопка будет считаться нажатой, если пользователь нажал на клавишу , а фокус находился в другом месте формы (но не на другой кнопке). Обычно такие кнопки являются главными, по которым выполняется действие, ради которого создавалась форма (печать отчета, занесение информации в базу данных, отправка почты и т.п.);

  • Picture — если просто надпись вас не устраивает, можно назначить кнопке рисунок;

  • TakeFocusOnClick — будет ли передаваться управление этой кнопке при нажатии на нее. По умолчанию True.

Элемент управления TextBox

Текстовое поле (TextBox) — один из самых часто используемых элементов управления



Рис. 6

 Текстовое поле (элемент управления TextBox) на форме

Текстовое поле используется:


  • для приема каких-либо текстовых данных, вводимых пользователем или для вывода пользователю текстовых данных с возможностью их редактирования (из базы данных, листа Excel и т.п.);

  • для вывода пользователю текстовых данных с возможностью копирования и печати, но без возможности изменения (классический пример — текст лицензионного соглашения).

Некоторые важные свойства этого элемента управления:

  • Value (или Text, эти два свойства для текстового поля идентичны) — то текстовое значение, которое содержится в этом поле.



  • AutoSize — возможность для текстового поля автоматически менять свой размер, чтобы вместить весь текст.



  • ControlSource — ссылка на источник текстовых данных для поля. Может ссылаться, например, на ячейку в Excel, на поле в Recordset и т.п.



  • ControlTipText — текст всплывающей подсказки, которая появляется, когда пользователь наводит указатель мыши на элемент управления.



  • Enabled — если переставить в False, то текст в поле станет серым и с содержимым поля ничего сделать будет нельзя (ни ввести текст, ни выделить, ни удалить).



  • Locked — поле будет выглядеть как обычно, пользователь сможет выделять и копировать данные из него, но не изменять их.



  • MaxLength — максимальная длина значения, которое можно ввести в поле. Иногда можно использовать свойство AutoTab — при достижении определенного количества символов управление автоматически передается другому элементу управления.



  • MultiLine — можно ли использовать в текстовом поле несколько строк или необходимо обойтись одной. Если вам нужно текстовое поле для приема

  • PasswordChar — указать, за каким символом будут "прятаться" вводимые пользователем значения. Используется, конечно, при вводе пароля.



  • ScrollBars — будут ли показаны горизонтальная и вертикальная полосы прокрутки (в любом сочетании). Если текст может быть большим, без них не обойтись.



  • WordWrap — настоятельно рекомендуется включать в тех ситуациях, когда значение MultiLine стоит в True. В этом случае будет производиться автоматический переход на новую строку при достижении границы текстового поля.

Главное событие для текстового поля — это событие Change (то есть изменение содержания поля). Редактирование этого события вызывается двойным щелчком.



Рис. 7

Элемент управления ComboBox

Комбинированный список также используется очень часто. Этот элемент управления позволяет пользователю как выбирать "готовые" значения из списка, так и вводить значения самостоятельно (хотя это можно запретить)


Элемент управления ListBox

Основные свойства, методы и события у ListBox — те же, что и у ComboBox. Главное отличие — то, что имеется свойство MultiSelect, которое позволяет пользователю выбирать несколько значений. По умолчанию это свойство отключено.



Пример программы с использованием операторов ветвления.

Поместим на форме кнопку и напишем в обработке события Click (см. рис.4) следующую программу:



Рис 8.


Затем, возвращаемся в лист Excel, пишем числа в ячейках A1,B1,C1 (то есть cells(1,1), cells(1,2),cells(1,3)) и нажимаем Enter. Переходим в редактор Visual Basic и запускаем программу через пункт меню Run.

Рис 9.
Программа находит наибольшее число из трех.



Варианты задания 1.


  1. Внести координаты центра окружности, ее радиус и координаты точки, проверить лежит ли точка внутри окружности.

  2. Внести координаты 3 точек, проверить принадлежат ли точки одной прямой.

  3. Внести координаты 3 точек, проверить лежат ли точки внутри окружности с центром в начале координат и радиусом 2.

  4. Внести координаты 3 точек, найти точку наименее удаленную от начала координат.

  5. Внести координаты 4 точек, найти точку наименее удаленную от первой.

  6. Внести координаты 3 точек (вершин треугольника), найти сторону с наименьшей длиной.

  7. Внести координаты 4 точек, найти точку наиболее удаленную от второй точки.

  8. Внести координаты 3 точек (вершин треугольника), найти сторону с наибольшей длиной.

  9. Внести координаты 3 точек (вершин треугольника), найти наибольший угол.

  10. Внести координаты 3 точек (вершин треугольника), найти наибольшую высоту.

  11. Внести 3 числа (длины отрезков), проверить можно ли из них построить треугольник.

  12. Внести 4 числа, проверить образуют ли любые три из них арифметическую прогрессию.

  13. Внести 4 числа, проверить образуют ли любые три из них геометрическую прогрессию.

  14. Внести 4 числа, проверить образуют ли любые три из них последовательность Фибоначчи.

  15. Внести 3 числа, проверить, не равно ли одно из них кубу другого.

  16. Внести 3 числа, проверить, не равно ли одно из них квадрату суммы двух других.

  17. Внести 3 числа, расположить их в порядке возрастания.

  18. Внести 3 числа, расположить их в порядке убывания.

  19. Внести 4 числа, проверить образуют ли любые три из них длины сторон прямоугольного треугольника.

  20. Внести 5 чисел, проверить образуют ли любые четыре из них длины сторон параллелограмма.



Пример программы с использованием операторов цикла For.


Рис 10.

Рис 11.


Программа берет n чисел из первого столбца и записывает четные числа во второй столбец, а нечетные в третий.

Рассмотрим еще примеры важных программ нахождения суммы и минимума массива чисел.


Рис 12.


Рис 13.
Варианты задания 2.


  1. Найти наибольшее число из заданного количества чисел.

  2. Найти наибольшее четное число из заданного количества чисел.

  3. Найти среднее арифметическое из заданного количества чисел.

  4. Найти среднее геометрическое из заданного количества чисел.

  5. Найти среднее арифметическое нечетных чисел из нескольких.

  6. Найти среднее арифметическое элементов массива с нечетными индексами.

  7. Найти сумму чисел делящихся на 3 из некоторых чисел.

  8. Найти среднее арифметическое отрицательных из нескольких чисел.

  9. Найти среднее арифметическое отрицательных из нескольких чисел.

  10. Найти все квадраты целых чисел из нескольких целых.

  11. Найти наибольшее число из отрицательных в массиве целых чисел.

  12. Найти наименьшее число из положительных в массиве целых чисел.

  13. Вывести все числа, делящиеся на 5 из массива целых чисел.

  14. Вывести все четные отрицательные числа из массива целых чисел.

  15. Найти сумму всех отрицательных четных чисел из массива целых чисел.

  16. Найти произведение всех отрицательных нечетных чисел из массива целых чисел.

  17. Найти сумму всех чисел, делящихся на 3 или на 5 из массива целых чисел.

  18. Каждые 2 числа из массива целых чисел переставить местами (1со 2, 3 с 4).

  19. В массиве целых чисел первое переставить с последним числом, второе с предпоследним и т.д.

  20. Каждые 3 числа из массива целых чисел циклически переставить местами.

Пример программы с использованием пользовательской функции.


Рис 14.



Рис 15.

Варианты задания 3.


  1. Найти с помощью функции факториал заданного числа.

  2. Найти с помощью функции степень ab.

  3. Написать функцию, определяющую кратность двух целых аргументов.

  4. Написать функцию, определяющую остаток от деления двух целых аргументов.

  5. Написать функцию, определяющую максимум из трех целых аргументов.

  6. Написать функцию, переводящую рубли в доллары.

  7. Написать функцию, переводящую угловую меру радиан в градусы.

  8. Написать функцию, переводящую угловую из градусов в радианы.

  9. Написать функцию, переводящую градусы Цельсия в градусы Фаренгейта.

  10. Написать функцию, находящую логарифм по произвольному основанию.

  11. Написать функцию, которая находит сторону треугольника по двум другим и углу между ними.

  12. Написать функцию, которая находит площадь треугольника по двум сторонам и углу между ними.

  13. Написать функцию, которая находит площадь треугольника по трем сторонам.

  14. Написать функцию, находящую корни квадратного уравнения.

  15. Написать функцию, которая находит n-ое число Фибоначчи.

  16. Написать функцию, которая находит углы при катетах треугольника по их величинам.

  17. Написать функцию, находящую произвольную степень 2-ки.

  18. Написать функцию, проверяющую является ли число кубом целого числа.

  19. Написать функцию, проверяющую является ли число квадратом целого числа.

  20. Написать функцию, находящую число сочетаний из N по m.



База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница