Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Занятие 3.doc
Скачиваний:
5
Добавлен:
20.08.2019
Размер:
247.81 Кб
Скачать

Занятие 3

задача1

.Использование оператора ForEachNext

Цикл, организованный с помощью этого оператора, позволяет перебирать все объекты семейства или элементы массива и выполнять одни и те же действия над каждым объектом или семейством.

2.1. Задание «Перечисли страны». Рассмотрим простой пример цикла ForToNext. Задача следующая: при щелчке по командной кнопке (CommandButton) должно появляться окно сообщения MsgBox с названием страны. Перечень названий стран зададим с помощью массива из 5 элементов.

С оздадим на рабочем листе кнопку с заголовком «Страны Африки». Имя задайте более короткое (Страны).

O

Описание переменных в области General

ption Base 1

Dim CountryArray(5) As String

Dim Country As Variant

Private Sub Страны_Click()

CountryArray(1) = "Алжир"

CountryArray(2) = "ЮАР”

CountryArray(3) = "Эфиопия"

CountryArray(4) = "Албания"

CountryArray(5) = "Кения"

For Each Country In CountryArray

MsgBox Country

Next

End Sub

Цикл For – Each – Next используется для вывода каждого элемента массива.

For Each –ключевое слово, обозначающее начало цикла

CountryArray(5) – массив из 5 элементов.

Country – переменная, которой присваиваются по очереди все элементы группы.

Next – ключевое слово, обозначающее конец цикла.

Option Base – оператор, устанавливающий нижнюю границу массива, в данном случае 1. Результат показан на рисунке 1.

Рис.1

Задача2

«Выделение чисел». Заполните некоторый диапазон на рабочем листе 2 (A1:F20) числовыми значениями (от 1 до 50, числа могут повторяться). Наша задача выделить все значения отличные от 25 – рис.2.

Создадим командную кнопку CommandButton с именем и заголовком «Выделение». При щелчке по этой кнопке должна будет выполняться процедура выделения ячеек с данными значениями. В ячейках будет изменен размер шрифта на 18, начертание шрифта – полужирный (Bold) и заливка ячеек будет красная. Значение ColorIndex = 0 означает, что заливка отсутствует.

Запишем программный код:

Dim Cell As Range

Private Sub Выделение_Click()

Worksheets(2).Select

For Each Cell In Range("A1:F20")

If Cell.Value <> 25 Then

Cell.Font.Size = 18

Cell.Font.Bold = True

Cell.Interior.ColorIndex = 3

End If

Next

End Sub

Рис.2

Разберем текст программы:

Dim Cell As Range – задаем переменную Cell типа Range.

Worksheets(2).Select – выделяем (активизируем) второй рабочий лист.

Cell.Font.Size = 18 ‘задаем размер шрифта.

Cell.Font.Bold = True ‘ задаем полужирное начертание шрифта.

Cell.Interior.ColorIndex = 3 ‘ индекс заливки, соответствующий красному цвету.

Результат работы данной программы показан на рис. 2

Далее создадим вторую кнопку с именем и заголовком «Очистка» и запишем программный код:

Private Sub Очистка_Click()

Worksheets(2).Select

For Each Cell In Range("A1:F20")

Cell.Font.Size = 10

Cell.Font.Bold = False

Cell.Interior.ColorIndex = 0

Next

End Sub

Строка Cell.Interior.ColorIndex = 0 убирает заливку ячеек.

При щелчке по второй кнопке шрифт снова становится прежним – размер 10, заливка убирается (индекс 0).

Задача3

3.1. На рабочем листе 3 в ячейку а1 введите произвольный текст или число, например, 100.

Создадим командную кнопку с именем и заголовком NoWith. Запишем программный код для форматирования ячейки А1 после щелчка по этой кнопке.

Private Sub CommandButton1_Click()

ActiveWorkbook.Worksheets(3).Range("A1").Font.Bold = True

ActiveWorkbook.Worksheets(3).Range("A1").Font.Italic = True

ActiveWorkbook.Worksheets(3).Range("A1").Font.Size = 18

ActiveWorkbook.Worksheets(3).Range("A1").Font.Name = "Arial"

ActiveWorkbook.Worksheets(3).Range("A1").Font.ColorIndex = 3

ActiveWorkbook.Worksheets(3).Select

End Sub

Рис.3

Для очистки данной ячейки создайте новую командную кнопку, назовите ее «Очистка ячейки» и запишите программный код:

Private Sub ОчисткаЯчейки_Click()

Range("A1").Clear

With Range("A1")

.RowHeight = 20

.ColumnWidth = 10

End With

End Sub

Задача 4.

Рассмотрим теперь следующий элемент управления – поле со списком (рис.12). Этот элемент применяется для хранения списка значений. В этом элементе всегда отображается только одно значение списка. После активизации поля со списком список раскрывается и из него можно выбрать необходимый элемент. Кроме свойства Name у данного элемента есть несколько важных свойств. Рассмотрим их для дальнейшего использования.

Рис. 12.

Свойства, которые будут рассматриваться ниже: ListIndex, ListCount, в окне свойств не отображаются. Они будут фигурировать только в тексте программы. Свойство ListIndex содержит номер текущего элемента списка (того, который подсвечен – на нем щелкнули мышкой). Нумерация элементов списка начинается с нуля. Фактически по значению этого свойства можно определить, какой элемент списка ему соответствует. Свойство ListCount содержит число элементов списка, а свойство Text, выбранный в списке элемент.

Теперь рассмотрим наиболее используемые методы работы со списком. Метод Clear удаляет все элементы из поля со списком. Синтаксис использования:

ИмяОбъекта.Clear

Метод AddItem добавляет элемент в список. Синтаксис использования: ИмяОбъекта.AddItem элемент. Метод RemoveItem – удаление элемента из списка. Синтаксис использования:

RemoveItem номер удаляемого элемента

Задание 3. Разработем на рабочем листе следующий программный фрагмент (рис. 13).

Рис. 13.

Необходимо обеспечить выполнение следующих действий:

  • по щелчку по кнопке Заполнение список заполняется строками – яблоко, груша, слива, дыня, арбуз;

  • по щелчку по полю со списком выбранный элемент помещается в текстовое окно;

  • по щелчку по кнопке Очистка текстовое окно и поле со списком очищаются – становятся пустыми.

Для заполнения поля со списком по щелчку по кнопке Заполнение необходимо процедуру Заполнение_Click( ) оформить так как показано на рис. 14.

Рис. 14.

Далее для заполнения текстового окна по щелчку по полю со списком (при выборе того или иного элемента списка) необходимо процедуру Список_Click ( ) оформить так как показано на рис.15.

Рис. 15.

Теперь для очистки списка и текстового окна необходимо написать обработку события Щелчок по кнопке Очистка (рис. 16).

Рис. 16.

Теперь разрабатываемый программный фрагмент на рабочем листе готов и Вы можете попробовать его в работе (выйдя из режима конструктора).

Private Sub ComboBox1_Click()

TextBox1.Text = ComboBox1.Text

End Sub

Private Sub CommandButton1_Click()

ComboBox1.AddItem "яблоко"

ComboBox1.AddItem "груша"

ComboBox1.AddItem "слива"

ComboBox1.AddItem "дыня"

End Sub

Private Sub CommandButton2_Click()

ComboBox1.Clear

TextBox1 = ""

End Sub