SlideShare a Scribd company logo
1 of 43
Пользовательские формы в
Excel
Разработка VBA-приложений
Приложение
Табель успеваемости
Удобный способ хранения информации
Общие требования к приложению
I.
II.

Удобный способ хранения информации
Возможность быстрого ввода оценок по всем
предметам и возможность просмотра всех
оценок за отдельный день
III. Возможность просмотра всех оценок и
среднего балла по всем предметам
IV. Создание графического пользовательского
интерфейса (создание своего меню)
I.

Этапы создания рабочей книги

1. Создание рабочего листа с именем предмета
(Русский язык)
2. Создание заголовков таблицы на рабочем листе
•
•
•
•

Дата
Оценка
Примечание
«Вес» оценки

3. Задание форматов для каждого столбца
таблицы
4. Многократным копированием создаем
определенное количество листов
Табель успеваемости
Табель успеваемости формат ячеек
Табель успеваемости создание копии
листа
Вызвать контекстное меню
листа и выбрать
Переместить/скопировать

В диалоговом окне выбрать
(переместить в конец)
И установить флажок
«Создать копию»
Табель успеваемости новый лист
Табель успеваемости задание
имени для нового листа
1. Двойным щелчком выделяем ярлычок листа
Табель успеваемости задание
имени для нового листа
1. Вводим новое имя «Литература»
Создание оставшихся листов
Многократно повторяя операцию
копирования листа, создаем следующие
рабочие листы:
1.
2.
3.
4.

Алгебра
Геометрия
Физика
Химия

5.
6.
7.
8.

Биология
Информатика
Английский язык
Физкультура
Вид формы
II.

Вход в интегрированную среду
разработки VBA
Добавление новой формы в проект
Созданная форма (frmВвод)
Размещение элементов управления
в форме
1. Добавить ЭУ Microsoft
Date and Time Picker
Control на панель
инструментов, через
контекстное меню,
командой:
 Additional Controls…
Размещение элементов управления
в форме
•

Установить флажок напротив пункта:
–

Microsoft Date and Time Picker Control
Этапы создания ЭУ
•
•
•
•
•

Создать календарь (DTPicker)
Создать две надписи (Label)
Создать текстовое поле (TextBox)
Создать рамку (Frame)
Внутри рамки разместить 3 переключателя (OptionButton)
Этапы создания ЭУ
Свойство Tag ЭУ TextBox
Значение данного свойства равно имени
соответствующего листа
Пример для txtРусс – Русский язык
Создание всех ЭУ
1. Выделить созданные ЭУ
2. Скопировать их
3. Вставить из буфера обмена и задать новые
имена и значения свойств
• Имена должны различаться только в
русскоязычной части
• Русскоязычная часть состоит из первых 4-х букв
названия рабочего листа (Русс, Лите, Алге, и т.д.)
Вид формы
Размещение кнопок на форме
• Всего 4 кнопки:
–
–
–
–

•
•
•
•

Просмотр (cmdПросмотр)
Ввод (cmdВвод)
Очистить (cmdОчистить)
Выход (cmdВыход)

Выбрать ЭУ CommandButton
Разместить в левом нижнем углу формы
Задать имя и надпись
Остальные 3 создаются по аналогии
Вид формы
Алгоритм проверки текстовых полей
формы (кнопка Ввод)
1. Опросить 1 ЭУ из семейства ЭУ
2. Если это текстовое поле, то
1. strОценка=TRIM(Имя_Поля.Text)
2. Если strОценка <> «», то
1.
2.
3.
4.

Определить имя соответствующего листа (Tag)
Определить кол-во занятых строк начиная с ячейки А1
В первую свободную ячейку столбца А вставить дату
В первую свободную ячейку столбца В - оценку

3. Конец если

3. Конец если
4. Перейти к пункту 1
Оператор выполнения группы
инструкций для каждого элемента
семейства
For Each Элемент In Группа
[инструкция]
[Exit For]
[инструкция]
Next [Элемент]
Код программы
Private Sub cmdВвод_Click()
Dim txt As Object
For Each txt In Controls
If txt.Tag <> "" Then

strОценка = Trim(txt.Text)
If strОценка <> "" Then
strИмяЛиста = txt.Tag
Worksheets(strИмяЛиста).Select
intКолСтрок = Worksheets(strИмяЛиста).Range("A1").CurrentRegion.Rows.Count
'определяем кол-во заполненных строк по ячейке
'содержащей дату начиная с ячейки A1
Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 1).Value = dtpДата.Value
Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 2).Value = strОценка
Код определения состояния переключателей
End If
End If
Next txt
Определение типа урока и «веса»
оценки
strИмя1 = "opt1" & Mid(strИмяЛиста, 1, 4)
strИмя2 = "opt2" & Mid(strИмяЛиста, 1, 4)
strИмя3 = "opt3" & Mid(strИмяЛиста, 1, 4)
If Me.Controls(strИмя1).Value Then
strВес = "1"
strТип = "обычный"
ElseIf Me.Controls(strИмя2).Value Then
strВес = "1.5"
strТип = "самостоятельная работа"
ElseIf Me.Controls(strИмя3).Value Then
strВес = "2"
strТип = "контрольная работа"
End If
Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 3).Value = strТип
Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 4).Value = strВес
Код программы для кнопки
Очистить
Private Sub cmdОчистить_Click()
Dim txt As Object
For Each txt In Controls
If txt.Tag <> "" Then
txt.Text = ""
End If
Next txt
End Sub
Код программы для кнопки Выход
Private Sub cmdВыход_Click()
End
End Sub
Код программы для кнопки
Просмотр
Private Sub cmdПросмотр_Click()
Me.Hide
frmПросмотр.Show
End Sub
Форма Просмотр (frmПросмотр)
Код формы
Private Sub UserForm_Initialize()
Dim strВсеОценки As String
Dim intСуммОценки As Integer
Dim sngСуммБалл As Single
Код формы
For i = 1 To Worksheets.Count
Worksheets(i).Select
strИмяЛиста = ActiveSheet.Name
intКолСтрок = Worksheets(i).Range("A1").CurrentRegion.Rows.Count
strИмяПоля = "txt" & Mid(strИмяЛиста, 1, 4)
strИмяПоля1 = strИмяПоля & "Ср"
For j = 2 To intКолСтрок
intСуммОценки = intСуммОценки + (Cells(j, 2).Value * Cells(j, 4))
sngСуммБалл = sngСуммБалл + Cells(j, 4).Value
strВсеОценки = strВсеОценки & " " & Cells(j, 2).Value
Next j
Me.Controls(strИмяПоля).Text = Trim(strВсеОценки)
Код формы
If sngСуммБалл <> 0 Then
Me.Controls(strИмяПоля1).Text =
CStr(Format((intСуммОценки) / (sngСуммБалл), "fixed"))
Else
Me.Controls(strИмяПоля1).Text = CStr(Format(0, "fixed"))
End If
strВсеОценки = ""
intСуммОценки = 0
sngСуммБалл = 0
Next i
End Sub
Код кнопок Ввод и Выход
Private Sub cmdВвод_Click()
Me.Hide
frmВвод.Show
End Sub
Private Sub cmdВыход_Click()
End
End Sub
III.

Создание собственного меню

Private Sub Workbook_Open()
Dim MyBar As CommandBar
Dim MyButton(1 To 2) As CommandBarButton
With Application
.DisplayFormulaBar = False
.CommandBars("Formatting").Visible = False
.CommandBars("Standard").Visible = False
End With
III.

Создание собственного меню

'Создание своей панели
Set MyBar = Application.CommandBars.Add(Name:="Моя панель", _
Position:=msoBarTop, MenuBar:=False, Temporary:=True)
'Создание своих кнопок
With MyBar
.Visible = True
.Protection = msoBarNoMove + msoBarNoChangeVisible _
+ msoBarNoCustomize
With .Controls
Set MyButton(1) = .Add(Type:=msoControlButton, ID:=1, Temporary:=True)
Set MyButton(2) = .Add(Type:=msoControlButton, ID:=1, Temporary:=True)
End With
End With
III.

Создание собственного меню

'Установка свойств кнопок
With MyButton(1)
.Caption = "Просмотр"
.TooltipText = "Просмотр всех оценок"
.Style = msoButtonCaption
.OnAction = "Просмотр"
End With
With MyButton(2)
.Caption = "Ввод"
.TooltipText = "Ввод оценок"
.Style = msoButtonCaption
.OnAction = "Ввод"
End With
III.

Удаление собственного меню
при закрытии книги

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.DisplayFormulaBar = True
.CommandBars("Formatting").Visible = True
.CommandBars("Standard").Visible = True
End With
'Удаление созданной панели
Dim bar As CommandBar
For Each bar In Me.Application.CommandBars
If Not bar.BuiltIn Then bar.Delete
Next
End Sub
Стандартный модуль
Sub Ввод()
frmВвод.Show
End Sub
Sub Просмотр()
frmПросмотр.Show
End Sub
Для самостоятельной работы
• Описать событие Change() для ЭУ Microsoft
Date and Picker Control, так чтобы при
изменение даты выводились все оценки по
предметам за этот день.
• Подсказка. Данное событие
противоположно событию Click() для
кнопки Ввод формы «Ввод оценок»

More Related Content

What's hot

0018
00180018
0018JIuc
 
14.цикл из пяти уроков информатики в 8 классе табличный процессор excel
14.цикл из пяти уроков информатики в 8 классе табличный процессор excel14.цикл из пяти уроков информатики в 8 классе табличный процессор excel
14.цикл из пяти уроков информатики в 8 классе табличный процессор excelKirrrr123
 
создание запросов, отчётов, Web страниц
создание запросов, отчётов, Web страницсоздание запросов, отчётов, Web страниц
создание запросов, отчётов, Web страницVladimir Burdaev
 
Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Vladimir Tcherniak
 
Прикладная эконометрика. Лекция 1
Прикладная эконометрика. Лекция 1Прикладная эконометрика. Лекция 1
Прикладная эконометрика. Лекция 1Vladimir Tcherniak
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
 
методические указания
методические указанияметодические указания
методические указанияsveta-la
 
импорт информации из бд
импорт информации из бдимпорт информации из бд
импорт информации из бдVladimir Burdaev
 
электронные таблицы основные параметры электронных таблиц основные типы и ...
электронные таблицы   основные параметры электронных таблиц  основные типы и ...электронные таблицы   основные параметры электронных таблиц  основные типы и ...
электронные таблицы основные параметры электронных таблиц основные типы и ...guest8851ad2
 
СУБД MS Access
СУБД MS AccessСУБД MS Access
СУБД MS AccessArtyukhova
 
0012
00120012
0012JIuc
 
субд Access
субд Accessсубд Access
субд AccessAndrewTar
 
Ирбис: установка значений по-умолчанию
Ирбис: установка значений по-умолчаниюИрбис: установка значений по-умолчанию
Ирбис: установка значений по-умолчаниюSoldatova Oksana
 
Использование Open refine для работы с открытыми бюджетами и гос. контрактами
Использование Open refine для работы с открытыми бюджетами и гос. контрактамиИспользование Open refine для работы с открытыми бюджетами и гос. контрактами
Использование Open refine для работы с открытыми бюджетами и гос. контрактамиOlya Parkhimovich
 
урок по информатике формы 12 класс
урок по информатике формы 12 классурок по информатике формы 12 класс
урок по информатике формы 12 классinnaivarlak
 
упражнение 6
упражнение 6упражнение 6
упражнение 6Artyukhova
 

What's hot (19)

0018
00180018
0018
 
14.цикл из пяти уроков информатики в 8 классе табличный процессор excel
14.цикл из пяти уроков информатики в 8 классе табличный процессор excel14.цикл из пяти уроков информатики в 8 классе табличный процессор excel
14.цикл из пяти уроков информатики в 8 классе табличный процессор excel
 
создание запросов, отчётов, Web страниц
создание запросов, отчётов, Web страницсоздание запросов, отчётов, Web страниц
создание запросов, отчётов, Web страниц
 
Access 2
Access 2Access 2
Access 2
 
Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2Прикладная эконометрика. Лекция 2
Прикладная эконометрика. Лекция 2
 
Прикладная эконометрика. Лекция 1
Прикладная эконометрика. Лекция 1Прикладная эконометрика. Лекция 1
Прикладная эконометрика. Лекция 1
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
 
Word
WordWord
Word
 
Microsoft excel 2007
Microsoft excel 2007Microsoft excel 2007
Microsoft excel 2007
 
методические указания
методические указанияметодические указания
методические указания
 
импорт информации из бд
импорт информации из бдимпорт информации из бд
импорт информации из бд
 
электронные таблицы основные параметры электронных таблиц основные типы и ...
электронные таблицы   основные параметры электронных таблиц  основные типы и ...электронные таблицы   основные параметры электронных таблиц  основные типы и ...
электронные таблицы основные параметры электронных таблиц основные типы и ...
 
СУБД MS Access
СУБД MS AccessСУБД MS Access
СУБД MS Access
 
0012
00120012
0012
 
субд Access
субд Accessсубд Access
субд Access
 
Ирбис: установка значений по-умолчанию
Ирбис: установка значений по-умолчаниюИрбис: установка значений по-умолчанию
Ирбис: установка значений по-умолчанию
 
Использование Open refine для работы с открытыми бюджетами и гос. контрактами
Использование Open refine для работы с открытыми бюджетами и гос. контрактамиИспользование Open refine для работы с открытыми бюджетами и гос. контрактами
Использование Open refine для работы с открытыми бюджетами и гос. контрактами
 
урок по информатике формы 12 класс
урок по информатике формы 12 классурок по информатике формы 12 класс
урок по информатике формы 12 класс
 
упражнение 6
упражнение 6упражнение 6
упражнение 6
 

Similar to VBA Excel создание табеля успеваемости

электронные таблицы основные параметры электронных таблиц основные типы и ...
электронные таблицы   основные параметры электронных таблиц  основные типы и ...электронные таблицы   основные параметры электронных таблиц  основные типы и ...
электронные таблицы основные параметры электронных таблиц основные типы и ...guest8851ad2
 
электронная таблица
электронная таблицаэлектронная таблица
электронная таблицаmontrucchio
 
презентация лекции №3
презентация лекции №3презентация лекции №3
презентация лекции №3student_kai
 
презентация лекции №2
презентация лекции №2презентация лекции №2
презентация лекции №2student_kai
 
сапр тп лаб3
сапр тп лаб3сапр тп лаб3
сапр тп лаб3student_kai
 
л. б. №9 костюка б. в. гр 2им
л. б. №9 костюка б. в. гр 2имл. б. №9 костюка б. в. гр 2им
л. б. №9 костюка б. в. гр 2имwycccccccccc
 
сапр тп лаб5
сапр тп лаб5сапр тп лаб5
сапр тп лаб5student_kai
 
основные команды языка программирования
основные команды языка программированияосновные команды языка программирования
основные команды языка программированияanastastish
 
акцесс изменён
акцесс изменёнакцесс изменён
акцесс изменёнminura19122010
 
Электронные таблицы
Электронные таблицыЭлектронные таблицы
Электронные таблицыAndrey Dolinin
 
Обзор полезных функций и приемов в Excel
Обзор полезных функций и приемов в ExcelОбзор полезных функций и приемов в Excel
Обзор полезных функций и приемов в ExcelTanya Mikhalchenko
 
Знакомство с табличным процессором Excel
Знакомство с табличным процессором ExcelЗнакомство с табличным процессором Excel
Знакомство с табличным процессором Excelmetodkopilka
 

Similar to VBA Excel создание табеля успеваемости (20)

Excel
ExcelExcel
Excel
 
электронные таблицы основные параметры электронных таблиц основные типы и ...
электронные таблицы   основные параметры электронных таблиц  основные типы и ...электронные таблицы   основные параметры электронных таблиц  основные типы и ...
электронные таблицы основные параметры электронных таблиц основные типы и ...
 
электронная таблица
электронная таблицаэлектронная таблица
электронная таблица
 
презентация лекции №3
презентация лекции №3презентация лекции №3
презентация лекции №3
 
презентация лекции №2
презентация лекции №2презентация лекции №2
презентация лекции №2
 
Excel03
Excel03Excel03
Excel03
 
сапр тп лаб3
сапр тп лаб3сапр тп лаб3
сапр тп лаб3
 
Stat 6 alpha
Stat 6 alphaStat 6 alpha
Stat 6 alpha
 
149
149149
149
 
л. б. №9 костюка б. в. гр 2им
л. б. №9 костюка б. в. гр 2имл. б. №9 костюка б. в. гр 2им
л. б. №9 костюка б. в. гр 2им
 
Занятие 5 презентация
Занятие 5 презентацияЗанятие 5 презентация
Занятие 5 презентация
 
сапр тп лаб5
сапр тп лаб5сапр тп лаб5
сапр тп лаб5
 
Word
WordWord
Word
 
основные команды языка программирования
основные команды языка программированияосновные команды языка программирования
основные команды языка программирования
 
акцесс изменён
акцесс изменёнакцесс изменён
акцесс изменён
 
Электронные таблицы
Электронные таблицыЭлектронные таблицы
Электронные таблицы
 
Обзор полезных функций и приемов в Excel
Обзор полезных функций и приемов в ExcelОбзор полезных функций и приемов в Excel
Обзор полезных функций и приемов в Excel
 
Vba 06
Vba 06Vba 06
Vba 06
 
Word 2003
Word 2003Word 2003
Word 2003
 
Знакомство с табличным процессором Excel
Знакомство с табличным процессором ExcelЗнакомство с табличным процессором Excel
Знакомство с табличным процессором Excel
 

VBA Excel создание табеля успеваемости

  • 4. Общие требования к приложению I. II. Удобный способ хранения информации Возможность быстрого ввода оценок по всем предметам и возможность просмотра всех оценок за отдельный день III. Возможность просмотра всех оценок и среднего балла по всем предметам IV. Создание графического пользовательского интерфейса (создание своего меню)
  • 5. I. Этапы создания рабочей книги 1. Создание рабочего листа с именем предмета (Русский язык) 2. Создание заголовков таблицы на рабочем листе • • • • Дата Оценка Примечание «Вес» оценки 3. Задание форматов для каждого столбца таблицы 4. Многократным копированием создаем определенное количество листов
  • 8. Табель успеваемости создание копии листа Вызвать контекстное меню листа и выбрать Переместить/скопировать В диалоговом окне выбрать (переместить в конец) И установить флажок «Создать копию»
  • 10. Табель успеваемости задание имени для нового листа 1. Двойным щелчком выделяем ярлычок листа
  • 11. Табель успеваемости задание имени для нового листа 1. Вводим новое имя «Литература»
  • 12. Создание оставшихся листов Многократно повторяя операцию копирования листа, создаем следующие рабочие листы: 1. 2. 3. 4. Алгебра Геометрия Физика Химия 5. 6. 7. 8. Биология Информатика Английский язык Физкультура
  • 14. II. Вход в интегрированную среду разработки VBA
  • 17. Размещение элементов управления в форме 1. Добавить ЭУ Microsoft Date and Time Picker Control на панель инструментов, через контекстное меню, командой:  Additional Controls…
  • 18. Размещение элементов управления в форме • Установить флажок напротив пункта: – Microsoft Date and Time Picker Control
  • 19. Этапы создания ЭУ • • • • • Создать календарь (DTPicker) Создать две надписи (Label) Создать текстовое поле (TextBox) Создать рамку (Frame) Внутри рамки разместить 3 переключателя (OptionButton)
  • 21. Свойство Tag ЭУ TextBox Значение данного свойства равно имени соответствующего листа Пример для txtРусс – Русский язык
  • 22. Создание всех ЭУ 1. Выделить созданные ЭУ 2. Скопировать их 3. Вставить из буфера обмена и задать новые имена и значения свойств • Имена должны различаться только в русскоязычной части • Русскоязычная часть состоит из первых 4-х букв названия рабочего листа (Русс, Лите, Алге, и т.д.)
  • 24. Размещение кнопок на форме • Всего 4 кнопки: – – – – • • • • Просмотр (cmdПросмотр) Ввод (cmdВвод) Очистить (cmdОчистить) Выход (cmdВыход) Выбрать ЭУ CommandButton Разместить в левом нижнем углу формы Задать имя и надпись Остальные 3 создаются по аналогии
  • 26. Алгоритм проверки текстовых полей формы (кнопка Ввод) 1. Опросить 1 ЭУ из семейства ЭУ 2. Если это текстовое поле, то 1. strОценка=TRIM(Имя_Поля.Text) 2. Если strОценка <> «», то 1. 2. 3. 4. Определить имя соответствующего листа (Tag) Определить кол-во занятых строк начиная с ячейки А1 В первую свободную ячейку столбца А вставить дату В первую свободную ячейку столбца В - оценку 3. Конец если 3. Конец если 4. Перейти к пункту 1
  • 27. Оператор выполнения группы инструкций для каждого элемента семейства For Each Элемент In Группа [инструкция] [Exit For] [инструкция] Next [Элемент]
  • 28. Код программы Private Sub cmdВвод_Click() Dim txt As Object For Each txt In Controls If txt.Tag <> "" Then strОценка = Trim(txt.Text) If strОценка <> "" Then strИмяЛиста = txt.Tag Worksheets(strИмяЛиста).Select intКолСтрок = Worksheets(strИмяЛиста).Range("A1").CurrentRegion.Rows.Count 'определяем кол-во заполненных строк по ячейке 'содержащей дату начиная с ячейки A1 Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 1).Value = dtpДата.Value Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 2).Value = strОценка Код определения состояния переключателей End If End If Next txt
  • 29. Определение типа урока и «веса» оценки strИмя1 = "opt1" & Mid(strИмяЛиста, 1, 4) strИмя2 = "opt2" & Mid(strИмяЛиста, 1, 4) strИмя3 = "opt3" & Mid(strИмяЛиста, 1, 4) If Me.Controls(strИмя1).Value Then strВес = "1" strТип = "обычный" ElseIf Me.Controls(strИмя2).Value Then strВес = "1.5" strТип = "самостоятельная работа" ElseIf Me.Controls(strИмя3).Value Then strВес = "2" strТип = "контрольная работа" End If Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 3).Value = strТип Worksheets(strИмяЛиста).Cells(intКолСтрок + 1, 4).Value = strВес
  • 30. Код программы для кнопки Очистить Private Sub cmdОчистить_Click() Dim txt As Object For Each txt In Controls If txt.Tag <> "" Then txt.Text = "" End If Next txt End Sub
  • 31. Код программы для кнопки Выход Private Sub cmdВыход_Click() End End Sub
  • 32. Код программы для кнопки Просмотр Private Sub cmdПросмотр_Click() Me.Hide frmПросмотр.Show End Sub
  • 34. Код формы Private Sub UserForm_Initialize() Dim strВсеОценки As String Dim intСуммОценки As Integer Dim sngСуммБалл As Single
  • 35. Код формы For i = 1 To Worksheets.Count Worksheets(i).Select strИмяЛиста = ActiveSheet.Name intКолСтрок = Worksheets(i).Range("A1").CurrentRegion.Rows.Count strИмяПоля = "txt" & Mid(strИмяЛиста, 1, 4) strИмяПоля1 = strИмяПоля & "Ср" For j = 2 To intКолСтрок intСуммОценки = intСуммОценки + (Cells(j, 2).Value * Cells(j, 4)) sngСуммБалл = sngСуммБалл + Cells(j, 4).Value strВсеОценки = strВсеОценки & " " & Cells(j, 2).Value Next j Me.Controls(strИмяПоля).Text = Trim(strВсеОценки)
  • 36. Код формы If sngСуммБалл <> 0 Then Me.Controls(strИмяПоля1).Text = CStr(Format((intСуммОценки) / (sngСуммБалл), "fixed")) Else Me.Controls(strИмяПоля1).Text = CStr(Format(0, "fixed")) End If strВсеОценки = "" intСуммОценки = 0 sngСуммБалл = 0 Next i End Sub
  • 37. Код кнопок Ввод и Выход Private Sub cmdВвод_Click() Me.Hide frmВвод.Show End Sub Private Sub cmdВыход_Click() End End Sub
  • 38. III. Создание собственного меню Private Sub Workbook_Open() Dim MyBar As CommandBar Dim MyButton(1 To 2) As CommandBarButton With Application .DisplayFormulaBar = False .CommandBars("Formatting").Visible = False .CommandBars("Standard").Visible = False End With
  • 39. III. Создание собственного меню 'Создание своей панели Set MyBar = Application.CommandBars.Add(Name:="Моя панель", _ Position:=msoBarTop, MenuBar:=False, Temporary:=True) 'Создание своих кнопок With MyBar .Visible = True .Protection = msoBarNoMove + msoBarNoChangeVisible _ + msoBarNoCustomize With .Controls Set MyButton(1) = .Add(Type:=msoControlButton, ID:=1, Temporary:=True) Set MyButton(2) = .Add(Type:=msoControlButton, ID:=1, Temporary:=True) End With End With
  • 40. III. Создание собственного меню 'Установка свойств кнопок With MyButton(1) .Caption = "Просмотр" .TooltipText = "Просмотр всех оценок" .Style = msoButtonCaption .OnAction = "Просмотр" End With With MyButton(2) .Caption = "Ввод" .TooltipText = "Ввод оценок" .Style = msoButtonCaption .OnAction = "Ввод" End With
  • 41. III. Удаление собственного меню при закрытии книги Private Sub Workbook_BeforeClose(Cancel As Boolean) With Application .DisplayFormulaBar = True .CommandBars("Formatting").Visible = True .CommandBars("Standard").Visible = True End With 'Удаление созданной панели Dim bar As CommandBar For Each bar In Me.Application.CommandBars If Not bar.BuiltIn Then bar.Delete Next End Sub
  • 42. Стандартный модуль Sub Ввод() frmВвод.Show End Sub Sub Просмотр() frmПросмотр.Show End Sub
  • 43. Для самостоятельной работы • Описать событие Change() для ЭУ Microsoft Date and Picker Control, так чтобы при изменение даты выводились все оценки по предметам за этот день. • Подсказка. Данное событие противоположно событию Click() для кнопки Ввод формы «Ввод оценок»