Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методы и свойства активности объекта

Поиск

Многие свойства Visual Basic применяются к текущему активному объекту (например, выделенному блоку ячеек).

Методы активности

Select выбирает область ячеек или страницу (аналог - затемненная область таблицы).

Activate делает активной отдельную ячейку в рамках текущего выбора. Будучи примененным к странице, Activate работает подобно Select.

Свойства, характеризующие активность

ActiveWorkboo k - применяется к рабочей папке;

ActiveSheet - к странице активной рабочей папки;

ActiveCell - к одноячеечному объекту;

Selection тесно связано с ActiveCell, но скорее относится ко всему выбору, чем к отдельной ячейке.

Макрорекордер

Одним из возможных способов написания программ на Visual Basic, особенно на начальном этапе его освоения, является использованиемакрорекордера. Даже относительно небольшие записанные макрорекордером фрагменты могут быть полезны - их можно вставить в основную программу пользователя. В качестве примера выполним в Excel последовательность операций, записывая ее макрорекордером:

· Записать в ячейке А1 число 2. Выделить блок ячеек А1:В3. Выровнять содержимое ячеек по центру. Остановить запись.

В результате на листе «Модуль1» появится отражающая данную последовательность операций программа, записанная на Visual Basic. В программе есть оператор With Selection. Этот оператор позволяет не записывать многократно свойство Selection. Попытайтесь далее самостоятельно разобраться с тем, что написано в программе:

Макрос Комментарий
Sub Макрос3() Заголовок
Range("A1").Select Активизируется ячейка "А1"
ActiveCell.FormulaR1C1 = "2" В ячейку "А1" записывается в виде формулы число 2
Range("A1:B3").Select Выделяется блок ячеек "A1:B3".
With Selection Начало работы с (With) выделенной областью (Selection)
.HorizontalAlignment = xlCenter Центрирование по ширине
.VerticalAlignment = xlBottom Запись по низу ячейки (по умолчанию)
.Orientation = xlHorizontal Горизонтальная ориентация текста (по умолчанию)
End With Окончание работы с выделенной областью
End Sub Конец макроса

Самостоятельная работа

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

· Запишите в режиме макрорекордера макрос: выделить блок ячеек (4х4); записать в них какое- либо слово; установить размер шрифта 14; сделать фон блока желтым, а цвет символов - красным. Завершите запись.

· Удалите блок и повторите макрос.

· Найдите записанный на VB макрос и сделайте в нем изменения: текст должен быть курсивным и полужирным, изображен желтым на синем, с размером символов 18 пунктов.

· Выполните отладку макроса.

Свойства, характеризующие содержимое

В большинстве случаев для присвоения ячейке какого-либо значения используется свойство Value объекта Range. Объекты Range представляют две возможности для изменения содержимого ячеек: свойства Value и Formula (см. фрагмент программы).

Когда вы видите на экране ячейку, вы видите ее содержимое, преобразованное в текущем формате. Когда вы присваиваете ячейке некоторое значение, это значение присваивается свойству Value.

Свойство Formula характеризует содержимое (формулу), которое записано в ячейку. Если вы записали некоторое число, то формула и значение будут одинаковыми. Если вы записали формулу, то свойство Formula содержит формулу, а свойство Value - результат вычисление по этой формуле.

Свойство Formula предлагает два варианта записи ссылок на ячейки. Кроме обычной “буква-цифра” используется свойство FormulaR1C1 для адресации “строка-столбец” (Row-Column). При этом отсчет идет от активной ячейки.

В качестве примера запишем в виде макроса программу: Записать в ячейке А1 число 2, а в ячейке В3 записать формулу “=А1” (копия значения). В результате получим:

Макрос Комментарий
Sub Макрос2()  
Range("A1").Select  
ActiveCell.FormulaR1C1 = "2" Активная ячейка имеет координаты (1,1)
Range("B3").Select  
ActiveCell.FormulaR1C1 = "=R[-2]C[-1]" Сдвиг по вертикали на 2 вверх (от 3 к 1) и по горизонтали на 1 влево (от В к А)
End Sub  

Здесь запись R[-2]C[-1] соответствует сдвигу в сторону уменьшения нумерации строки на 2 позиции и столбца на одну позицию.

Самостоятельная работа

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

Основные элементы языка

Практически все вы по школе знакомы с BASIC, и вам будет нетрудно изучить специфику VB. Мы считаем также, что вы знакомы и с СИ, поэтому часто будем проводить параллели.

Общие сведения и структура программных модулей

Программный модуль начинается ключевым словом Sub или Function и заканчивается End Sub или End Function. Конструирование программного модуля следует начинать с помощью меню Вставить/Процедура или кнопки " Вставить /Модуль /Процедура ", которая вызывает диалоговую панель. После выбора необходимых параметров и завершения диалога в области программы появляются начальная и конечная строки:

Public Function vvv() Public Sub s()
End Function End Sub

Далее можно переходить к конструированию тела процедуры.

Программа записывается и выполняется, как и в любом другом языке, по принципу “сверху вниз”. Операторы и ключевые слова отмечаются синим цветом, идентификаторы, методы и свойства - черным, комментарии - зеленым, а ошибочные записи - красным. Комментарии начинаются апострофом.

Для отладки программы на экран через меню "Вид" могут быть выведены окна отладки, контрольных значений, локальных переменных.

Самостоятельная работа

· Вызвать окно Visual Basic. Записать представленную программу.

· Вызвать окно контрольных значений (Вид/Окно контрольных значений (Watch Window)) и ввести в него переменные a, b, c (ПК мыши вызывается контекстное меню, где выбирается "Добавить контрольное значение" (Add Watch)).

· Внимательно изучить содержимое меню "Отладка" (Debug) и "Запуск" (Run).

· Выполнить процедуру в пошаговом режиме (F8) с визуальном контролем переменных.

· Вызвать окно отладки (Immediate Window). В этом окне можно выполнять отдельные операторы VB или даже небольшие программы и сразу же получать результаты. Оператор вывода результатов - Print или знак вопроса "?". Несколько последовательных операторов записываются в строке через двоеточие. Здесь следует заметить, что в режиме отладки выполняется лишь один (в том числе и составной) оператор. Программа из набора строк выполняться не будет.

· На отладочной панели выполнить a=6: b=5:?a/b. Неплохая панель? Ее можно использовать не только как калькулятор, но и для проверки операторов, особенно на первых порах освоения VB.

В простом Basic оператор Print сразу же выводит переменные на экран монитора. Здесь это не пройдет. Попытайтесь записать в рассматриваемой программе (work) используя оператор Print распечатать результат (переменную с). Не получилось? Все дело в том, что необходимо указать, где нужно печатать, - на отладочной панели. Используйте оператор Debug.Print c.

· Сделайте необходимые коррективы и получите на панели отладки требуемый результат.

Типы данных и переменные

Вы помните, в СИ было невозможно запустить программу без указания типа переменных и констант. И это не прихоть, это принципиальная позиция разработчиков СИ - каждая переменная должна быть описана. Это гарантирует от возможных ошибок. VB позволяет, как это было продемонстрировано в приведенном выше примере, не указывать тип переменных (тип по умолчанию), но помните - разработчики СИ не так уж и глупы! Для обязательного объявления типов переменных используется оператор Option Explicit (записывается в начале программного модуля). Пользуйтесь оператором Option Explicit, чтобы избежать неверного ввода имени имеющейся переменной или риска конфликтов в программе, когда область определения переменной не совсем ясна. Если оператор Option Explicit не используется, все неописанные переменные имеют тип Variant.

В VB имеется 11 встроенных типов данных:

Boolean (True, False); Integer (целые, 2 байта (2b)); Long (целые, 4b); Single (действительные, 4b); Double (действительные, 8b); Currency (валюта) (действительные, 8b, 4 разряда после запятой); Date (дата) (действительные, 8b); String (строка) (ссылка, адрес); Object (ссылка, 4b)- любой определенный объект; Array – массив; Variant (аналог Void в «СИ») - любой встроенный тип данных, используется, как правило, для описания произвольных объектов.

Оператор Dim

Для объявления типа переменных используется оператор Dim (Dimension). Его формат: Dim переменная As тип, переменная As тип (необходимо описывать каждую переменную индивидуально). Пример:

Dim stroka As String, stroka_1 As String

Dim cost As Currency, I As Integer

Dim Cart

Последняя переменная имеет тип Variant (можно было бы и не описывать - она будет определена по умолчанию, но если вы включили в программу оператор Option Explicit, вы обязаны явно описывать все переменные).

При инициализации переменных числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется нулями. Переменные типа Variant получают при инициализации значение Empty (пустой). Переменной со ссылкой на объект перед ее использованием необходимо присвоить существующий объект с помощью оператора Set. До присвоения объекта описанная объектная переменная имеет специальное значение Nothing, которое указывает, что она не содержит ссылку на какой-либо определенный объект.

Массивы

Индекс массива заключается в круглые скобки. Второй индекс отделяется от первого запятой. Объявление массива допускает несколько вариаций:

Оператор Комментарий
Dim cost(5) As Currency, i=0,…,4
Dim Ikra(700 To 799) As Integer i=700,…,799
Dim birthday (3 To 23, 5 To 7) As Date Двумерный, i=3,…,23, j=5,…,7

Если нижний индекс не задан явно, нижняя граница массива определяется оператором Option Base, который задается в модуле только один раз и предшествует описаниям массивов, включающих размерности. Следует заметить, что нижняя граница значений индексов массивов, создаваемых с помощью функции Array, всегда равняется нулю вне зависимости от оператора Option Base.



Поделиться:


Последнее изменение этой страницы: 2016-08-26; просмотров: 356; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.161.57 (0.009 с.)