Разработка автоматизированного рабочего места специалиста кафедры

 

В ходе написания квалификационной работы было разработано автоматизированное рабочее место специалиста кафедры. АРМ был написан на языке программирования VBA VisualBasicforApplications в программе MS Excel. В книге Excel было создано 7 листов. Лист «Расчет учебной нагрузки на ПИЭ» (рис. 11) отображает документ, в котором нагрузка представлена в общем виде. Формирования нагрузки происходит путем назначения каждой дисциплине преподавателя.

Для назначения преподавателей использовался выпадающий список с фамилиями преподавателей (рис12). Выпадающий список был создан с помощью умных таблиц. Умные таблицы удобны тем что:

- Умеют расти вниз, путём обычного дописывания значений снизу. То есть таблица "понимает", что снизу приписали ещё одно новое значение и автоматически себя расширяет без дополнительных команд от пользователя

- Умеют возвращать формулой свои столбцы .

Ячейки, которые стали источником для будущего списка, были размещены на листе «Список преподавателей».

На данном листе есть две кнопки «Главное меню» и «Формирование нагрузки». По нажатию на кнопку «Главное меню» пользователю открывается форма для формирования графиков и перехода на различные листы книги (рис.12).

При нажатии на кнопку формирование нагрузки запускается макрос «Нагрузка», который распределяет учебную нагрузку для каждого преподавателя в отдельности и подсчитывает общую сумму часов.

Sub Нагрузка()

Application.ScreenUpdating = 0

m = 6

k = 2

'Заносим значение из ячеек в переменную fio (2лист)

While Application.Workbooks(1).Worksheets(2).Cells(k, 1) <> ""

fio = Application.Workbooks(1).Worksheets(2).Cells(k, 1).Value

'выводим значение fio во второй столбец

Worksheets(4).Cells(m, 2) = fio

 

m = m + 1

p = m

'Сравниваем значение fio (на 1 листе) в диапозоне если они совподают то копируем данные (на 3 лист)

For i = 6 To 130

For j = 39 To 65

If Worksheets(1).Cells(i, j).Value = fio Then

Worksheets(1).Select

Range(Cells(i, 2), Cells(i, 34)).Select

Selection.Copy

Worksheets(4).Select

Cells(m, 5).Select

ActiveSheet.Paste

m = m + 1

End If

Next

Next

'Расчитываем сумму и выводим сумму

t = "=sum(AK" + Trim(Str(p)) + ":AK" + Trim(Str(m - 1)) + ")"

Application.Workbooks(1).Worksheets(4).Cells(m, 37) = t

'подсвечиваем строку с суммой и выводим слово ИТОГО

Application.Workbooks(1).Worksheets(4).Cells(m, 3) = "ИТОГО"

Range(Worksheets(4).Cells(m, 1), Worksheets(4).Cells(m, 41)).Select

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

m = m + 1

k = k + 1

Wend

Application.ScreenUpdating = 1

End Sub

В результате на листе «Распределение учебной нагрузки» формируется следующий документ (рис. 13).

Рассмотрим лист сформировавшийся лист «Распределение учебной нагрузки». На нем так же есть кнопка «Главное меню» которая откроет форму главного меню. Далее кнопка «Границы» позволяет создать сетку для каждой ячейки сформировавшегося документа. Кнопка «Печать» которая отвечает за печать выделенного диапазона. Данная кнопка удобна в случае, когда необходимо распечатать конкретного преподавателя, а не печатать весь документ целиком. Далее кнопка «Очистить лист» позволяет очистить сформированную нагрузку.

Форма «Главного меню» предназначена для мобильного передвижения по программе, а так же для быстрого формирования графиков. Графики формируются для I и II полугодия обучения:

- графики контрольных работ (рис.14);

- графики самостоятельных работ (рис.15);

- графики консультационных работ (рис.16);

- графики защиты курсовых работ (рис.17).

Для формирования каждого графика в книги excelе есть отдельный лист с готовым шаблоном графика, куда заносятся данные из нагрузки, которые потом переносятся в документ MS Word.

Private Sub CommandButton2_Click()

' графикКонтрольныхРабот Макрос

Application.ScreenUpdating = 0

k1 = 2

n = 1

 

 

'Сравниваем значение fio (на 1 листе) в диапозоне если они совподают то копируем данные (на 3 лист)

For i = 6 To 130

For j = 39 To 65

Worksheets(1).Select

' Условия выборки

If Cells(i, j) <> "" Then '1 условие Если в ячейках есть фамилия

'условие Если в ячейках есть часы контрольных работ

If Cells(i, 25) <> 0 Then

 

 

If (Cells(i, 5) = 1 Or Cells(i, 5) = 3 Or Cells(i, 5) = 5 Or Cells(i, 5) = 7) Then ' 2 условие Если в ячейке (i, 5) семестр нечетные цыфры 1,3,5,7, тогда в переменные заносятся значения

t1 = Cells(i, 2) 'Профиль

t2 = Cells(i, 3) 'Дисциплина

t3 = Cells(i, j) ' Фамилия

 

 

'Переходим на 5 лист и выводим переменные

Worksheets(5).Select

Cells(k1, 5) = t1

Cells(k1, 2) = t2

Cells(k1, 7) = t3

 

Cells(k1, 1) = n

k1 = k1 + 1

n = n + 1

End If

End If

'Проверка на курс

 

If (Worksheets(1).Cells(i, 5) = 1 Or Worksheets(1).Cells(i, 5) = 2) Then Worksheets(5).Cells(k1, 4) = "1"

ElseIf (Worksheets(1).Cells(i, 5) = 3 Or Worksheets(1).Cells(i, 5) = 4) Then Worksheets(5).Cells(k1, 4) = "2"

ElseIf (Worksheets(1).Cells(i, 5) = 5 Or Worksheets(1).Cells(i, 5) = 6) Then Worksheets(5).Cells(k1, 4) = "3"

ElseIf (Worksheets(1).Cells(i, 5) = 7 Or Worksheets(1).Cells(i, 5) = 8) Then Worksheets(5).Cells(k1, 4) = "4"

 

End If

 

Next

Next

 

Worksheets(5).Select

r = 1

While Cells(r, 1) <> ""

r = r + 1

Wend

'MsgBox r

Range(Cells(1, 1), Cells(r, 7)).Copy

Set oWord = CreateObject("Word.Application") 'Создаем отчет Ms Word

oWord.Visible = True

Set oDoc = oWord.Documents.Add()

oDoc.Activate

With oWord.Selection

 

.Font.Bold = True

.Font.Size = 16

.TypeText Text:="График проведения контрольных работ по кафедре прикладная информатика в экономике на первое полугодие "

.TypeParagraph

 

 

End With

oWord.Selection.Paste

Application.ScreenUpdating = 1

End Sub