Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA For Excel Часть 02.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.08 Mб
Скачать

Задание 3 (заучиватель иностранных слов)

  1. Переименуйте первый лист книги Excel на “Программа” (кликните правой клавишей мыши по названию листа, и выберете пункт в контекстном меню переименовать)

  2. Измените размер ячеек “A1” и “А2” согласно рисунку 9.

  3. В ячейке “A1” установите крупный шрифт, а в ячейке “А2” ,согласно рисунку, установите элементы управления: 2 кнопки и поле со списком.

  4. Поменяйте Caption кнопок согласно рисунку 9.

  5. Переименуйте второй лист книги Excel на “Словарь1”, и заполните его согласно рисунку (таким же образом можно сделать “Словарь2” с другими словами)

  6. Войдите в редактор VBA.

  1. Активизируйте модуль листа Excel “Программа”.

  1. Объявите глобальные переменные проекта и создайте не событийную процедуру “Проверка”.

  2. Создайте событийные процедуры элементов управления и заполните их.

  3. Закройте окно редактора VBA.

  4. Включите режим программы и опробуйте ее через соответствующие элементы управления.

Рис9 Листы Excel

Лист –1

‘ниже модуль первого листа

Dim i As Long, j As Long

‘процедура проверки правильности выбранного имени словаря

Sub Проверка()

Dim i As Long, flag As Boolean

flag = False

For i = 1 To ThisWorkbook.Worksheets.Count

If ThisWorkbook.Worksheets(i).Name <> _

ThisWorkbook.ActiveSheet.Name _

And ComboBox1.Text = _

ThisWorkbook.Worksheets(i).Name Then

flag = True

Exit For

End If

Next i

If ComboBox1.Text = "" Or flag = False Then

ComboBox1.Text = ""

MsgBox "Словарь не выбран!"

End

End If

End Sub

‘событийная процедура поля со списком

Private Sub ComboBox1_MouseDown(ByVal Button As Integer, _

ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Dim i As Long

ComboBox1.Clear

For i = 1 To ThisWorkbook.Worksheets.Count

If ThisWorkbook.Worksheets(i).Name <> _

ThisWorkbook.ActiveSheet.Name Then

ComboBox1.AddItem ThisWorkbook.Worksheets(i).Name

End If

Next i

End Sub

‘событийная процедура кнопки “Новое слово”

Private Sub CommandButton1_Click()

Проверка

With ThisWorkbook.Worksheets(ComboBox1.Text)

If .Cells(i + 1, j + 1).Text = "" Then

i = 1

Else

i = i + 1

End If

Cells(1, 1) = .Cells(i, j + 1)

End With

End Sub

‘событийная процедура кнопки “Перевернуть”

Private Sub CommandButton2_Click()

Проверка

j = 1 - j

If i = 0 Then i = 1

With ThisWorkbook.Worksheets(ComboBox1.Text)

Cells(1, 1) = .Cells(i, j + 1)

End With

End Sub

Задание 4 (телефонная книжка с поиском)

  1. Заполните первый лист электронной таблицы согласно рисунку 10.

  2. В режиме конструктора установите на лист Excel элемент управления кнопку и замените на ней Caption согласно рисунку.

  3. Перейдите в редактор VBA.

  4. Вставьте новый модуль формы в проект (Меню: Вставка-Форма).

  5. Перейдите в режим конструирования формы (Меню: Вид-Объект)

  6. Замените Caption формы согласно рисунку 11.

  7. Включите панель элементов для формы (Меню: Вид-панель элементов)

  8. Установите на форму согласно рисунку элементы управления надпись, поле, кнопку, выключатель и поменяйте Caption установленных объектов, а на объекте Поле поменяйте свойство Text на пустую строку.

  9. Перейдите в редактор модуля формы (Меню: Вид-Программа)

  10. Объявите глобальные переменные модуля формы и создайте не событийную процедуру “ otbor ”.

  11. Создайте событийные процедуры элементов управления формы.

  12. Активизируйте модуль первого листа Excel на котором расположен элемент управления кнопка.

  13. Создайте событийную процедуру кнопки и заполните ее.

  14. Закройте окно редактора VBA

  15. Включите режим программы и опробуйте ее.

A

B

C

Иванов В.В.

131-23-46

  1. Отобрать по фамилии

Петров П.П.

123-34-38

Сидоров А.А.

112-33-16

Максимов П.П.

445-12-64

Иванов В.Г.

118-96-30

Сидорова Л.Л.

921-30-76

Рис 10 Лист Excel

Рис 11 Окно Формы

UserForm1 -

‘ниже модуль формы

Dim sf As String , N as Long

Sub otbor(n1 As Long, ByVal n As Long)

n1 = n1 + 1

Worksheets(2).Range("A" + CStr(n1)).Value = _

Worksheets(1).Range("A" + CStr(n)).Text

Worksheets(2).Range("B" + CStr(n1)).Value = _

Worksheets(1).Range("B" + CStr(n)).Text

End Sub

Private Sub TextBox1_Change()

sf = TextBox1.Text

End

‘кнопка на форме

Private Sub CommandButton1_Click()

Dim s As String

If sf = "" Then

MsgBox "Отбор осуществляется по введенному тексту!"

Exit Sub

End If

n = 2

n1 = 1

'Очистка второго листа

While Worksheets(2).Range("A" + CStr(n)).Text <> "" _

Or Worksheets(2).Range("B" + CStr(n)).Text <> ""

Worksheets(2).Range("A" + CStr(n) + ":B" + CStr(n)).Value = ""

n = n + 1

Wend

n = 2

'Поиск нужной фамилии в первом листе

While Worksheets(1).Range("A" + CStr(n)).Text <> ""

s = Worksheets(1).Range("A" + CStr(n)).Text

If Mid(s, 1, Len(sf)) = sf Then

If CheckBox1.Value = True Then

If Mid(s, Len(sf) + 1, 1) = " " Or Len(s) = Len(sf) Then

otbor n1, n

End If

Else

otbor n1, n

End If

End If

n = n + 1

Wend

Worksheets(2).Select

Hide

End Sub

Лист1-

‘ниже модуль листа

‘кнопка на листе

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]