Разработка приложений в среде VBA IDE
Федеральное государственное образовательное учреждение высшего профессионального образования
Московская
сельскохозяйственная академия имени
К.А. Тимирязева
(ФГОУ ВПО МСХА им. К.А.
Тимирязева)
Экономический факультет
Кафедра прикладной информатики
ОТЧЕТ О ВЫПОЛНЕННОЙ РАБОТЕ
по учебной
практике для студентов 1 курса
специальности 351400 «Прикладная
информатика в экономике АПК»
«Разработка приложений в среде VBA IDE»
Выполнил: Макаров Н.С.
группа ПИ-110
Руководитель: преп. Барамидзе Н.Н.
Отметка о защите:________________
Москва, 2005
Задание 2
Описание переменных 3
Текст программы. 4
Процедура расчета 4
Процедура ввода данных 6
Процедура корректировки 9
Процедура корректировки текста 9
Процедура корректировки чисел 9
Процедура построения диаграммы 10
Процедура ввода данных из файла 11
Процедура сохранения в файл 14
Процедура выхода из приложения 14
Инструкция по использованию программного продукта 15
Достоинства и недостатки программы 17
Список используемой литературы 18
Задание
Вариант Т-19
Составить программу обработки табличных данных. Программа должна работать по принципу меню. Меню должно содержать следующие пункты: ввод данных, корректировка данных, расчет таблицы, запись данных на магнитный диск, чтение данных с магнитного диска, построение диаграммы, выход. Форма таблицы (число строк до 10):
№ п/п |
Фамилия шофера |
Расход горючего -всего, кг |
Пробег, км |
Расход горючего на 1 км, кг |
Итого |
Наименьший расход горючего ____ кг/км ________ у шофера ___________
Разработка алгоритма.
В основе программы лежит метод получения данных от объекта Microsoft Office (в данном случае листа), в среду VBA IDE. После того как программа получит исходные данные она может осуществлять такие операции как коректирвка, сохранение, расчет, построение диаграммы. Также программа может данные с внешнего носителя.
Описание программного продукта.
Назначение:автоматизация расчетов.
Блок ввода данных предназначен для ввода исходных данных для обработки. Ввод данных может быть как ручным – пользователь сам вводит данные для обработки с клавиатуры , либо пользователь может ввести данные с помощью кнопки «Чтение из файла» вписав в окно диалога путь к указанному файлу. При ручном вводе данных пользователь предварительно вводит число строк.
Корректировка исходной информации может быть осуществлена только в диапазоне ячеек содержащем данные введенные пользователем. Диапазоны ячеек, содержащие заголовки полей, расчетные данные, итоговую строку пользователь не может. Для корректировки ячейки содержащей данные пользователь должен выделить ячейку с данными, которые требуется изменить. При нажатии кнопки «Корректировка» появляется форма для ввода нового значения.
Процедура расчета производиться по нажатию кнопки «Расчет». Производиться расчет относительного показателя (расхода топлива, кг/км), суммирование итогов и выбор записи с наименьшим расходом топлива на пробег и ее вывод на лист.
Далее пользователь может сохранить данные или построить диаграмму. Порядок выполнения действий неважен. Сохранение данных происходит в текстовый файл(filename.txt), по указанному пользователем пути. Чтение из файла можно произвести с помощью кнопки «Чтение из файла».
Построение диаграммы происходит по нажатию кнопки «Построение диаграмм». Диаграмма, типа гистограмма, строиться по столбцу «Расход топлива 1кг, км».
Структура базы данных представляет собой таблицу из 3 столбцов и n строк (количество строк определяется пользователем). Общая (принципиальная) блок-схема программы представлена на рис.1
Описание переменных
Dim driver() As String – массив тектсовых данных, типа String , хранит поле «фамилия шофера»
Dim fuel() As Single - числовой массив, типа Single, предназначен для хранения данных о расходе топлива
Dim way() As Single – числовой массив, типа Single, предназначен для хранения данных о пробеге
Dim fuelway() As Single – числовой массив, типа Single, предназанчен для хранения расчетных данных
Dim xxx As Integer - целочисленная переменная, типа Integer, предназначена для хранения числа строк матрицы исходных данных.
Входная информация представляет собой записи базы данных содержащие три поля: фамилия шофера, пробег, расход топлива.
Выходная информация представляет собой массив расчтеных данных и три итоговых величины.
Текст программы.
Процедура расчета
Sub calculating() – процедура расчета
Application.Caption = "MINOS SUMMER IT PRACTICE"
ActiveSheet.Unprotect
' снимаем защиту с листа
xxx = Sheets("a").Range("s23")
Dim driver() As String
Dim fuel() As Single
Dim way() As Single
Dim fuelway() As Single
'объявляем массивы данных для обсчета
ReDim driver(xxx)
ReDim fuel(xxx)
ReDim way(xxx)
ReDim fuelway(xxx)
' присваиваем массивам данных другую размерность
For i = 1 To xxx
fuel(i) = Sheets("a").Cells(2 + i, 3)
' считываем элемент массива из ячейки
x = x + fuel(i)
' суммируем расход топлива
way(i) = Sheets("a").Cells(2 + i, 4)
' считываем элемент массива из ячейки
y = y + way(i)
' суммируем пробег
fuelway(i) = fuel(i) / way(i)
'рассчитываем относительный показатель
z = z + fuelway(i)
' суммируем относительный показатель
Sheets("a").Cells(2 + i, 5) = fuelway(i)
' выводим значения относительного показвателя на лист
driver(i) = Sheets("a").Cells(2 + i, 2)
' считываем фамилии шоферов
Next i
' выводим итоги
Sheets("a").Cells(3 + xxx, 3) = x
Sheets("a").Cells(3 + xxx, 4) = y
Sheets("a").Cells(3 + xxx, 5) = z
' поиск минимума
k = fuelway(1)
ck = 1
For i = 1 To xxx
If k > fuelway(i) Then
k = fuelway(i)
ck = i
End If
Next i
' объединяем ячейки под таблицей и пишем се, что надо
Sheets("a").Range(Cells(5 + xxx, 1), Cells(5 + xxx, 2)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
Selection.Value = "Наименьший расход топлива"
Sheets("a").Cells(5 + xxx, 3) = fuel(ck)
Sheets("a").Cells(5 + xxx, 3).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Sheets("a").Cells(5 + xxx, 4) = " кг/км "
Sheets("a").Cells(5 + xxx, 5) = way(ck)
Sheets("a").Cells(5 + xxx, 5).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Sheets("a").Cells(5 + xxx, 6) = "у шофера"
Sheets("a").Cells(5 + xxx, 7) = driver(ck)
Sheets("a").Cells(5 + xxx, 7).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
ActiveSheet.Protect
End Sub
Процедура ввода данных
Sub zaboi()
Application.Caption = "MINOS SUMMER IT PRACTICE"
' объявляем массивы данных
Dim driver() As String
Dim fuel() As Single
Dim way() As Single
Dim fuelway() As Single
Dim xxx As Integer
ActiveSheet.Unprotect
' снимаем защиту с листа
xxx = InputBox(" введите количество строк")
xx1 = Sheets("a").Range("s23")
If IsEmpty(xx1) Then xx1 = 20
Sheets("a").Range("s23") = xxx
For i = 1 To xx1 + 5
For j = 1 To 7
Sheets("a").Cells(2 + i, j).Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
If Selection.MergeCells = True Then
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
End If
Next j
Next i
' начинаем рисовать клетки
For i = 1 To xxx
For j = 1 To 5
Sheets("a").Cells(2 + i, j).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Sheets("a").Cells(2 + i, 1) = i
Next j
Next i
k = i + 2
' объединяем ячейки и пишем надпись Итого
Sheets("a").Range(Cells(k, 1), Cells(k, 2)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Sheets("a").Cells(k, 1) = " ИТОГО "
' дорисовываем оставшиеся ячейки в строке итого
For j = 3 To 5
Sheets("a").Cells(k, j).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next j
' рисование закончено, далее идет собственно забой
ReDim driver(xxx)
ReDim fuel(xxx)
ReDim way(xxx)
ReDim fuelway(xxx)
For i = 1 To xxx
driver(i) = InputBox("Введите фамилию" & " " & CStr(i) & "-го шофера")
Sheets("a").Cells(2 + i, 2) = driver(i)
Next i
'ввод расхода топлива
For i = 1 To xxx
fuel(i) = InputBox("Введите расход топлива" & " " & CStr(i) & "-го шофера")
Sheets("a").Cells(2 + i, 3) = fuel(i)
Next i
'ввод пробега
For i = 1 To xxx
way(i) = InputBox("Введите пробег" & " " & CStr(i) & "-го шофера")
Sheets("a").Cells(2 + i, 4) = way(i)
Next i
ActiveSheet.Protect
End Sub
Процедура корректировки
Sub corraq()
Dim o As Range
' объявляем объект типа ячейка
Application.Caption = "MINOS SUMMER IT PRACTICE"
ActiveCell.Select
xxx = Sheets("a").Range("s23")
Set userdata = Sheets("a").Range(Cells(3, 2), Cells(2 + xxx, 4)) ' устанавливаем разрешенный диапазон изменяемых ячеек
For Each o In userdata
If ActiveCell.Address(rowabsolute:=False, columnabsolute:=False) = o.Address(rowabsolute:=False, columnabsolute:=False) Then k = k + 1 ' и если активная ячейка в диапазоне то мы ее изменяем
Next
If k <> 1 Then
' а если наша ячейка не в диапазоне то выводим сообщеие пользоваелю и прекращаем выпонение процедуры
MsgBox "нельзя корректировать эту ячейку!!!"
Range("b3").Select
Exit Sub
End If
a = Selection.Value
If IsNumeric(a) = False Then textcorr ' в зависимости от типа изменяемых данных вызываем ту или иную процедуру корректирвки
If IsNumeric(a) = True Then numericcorr
If IsEmpty(a) = True Then ' а если ячейка пуста, то заставляем пользоваетля ввести в нее что-нибудь
While IsEmpty(m) = True
m = InputBox("Внимание!Ячейка пуста, пожалуйста введите значение в ячейку", "Внимание пустая ячейка")
Wend
ActiveCell.Value = m
End If
End Sub
Процедура корректировки текста
Sub textcorr()
UserForm2.Show
End Sub
Процедура корректировки чисел
Sub numericcorr() - процедура корректировки чисел
UserForm3.Show
End Sub
.
Рис.2 Экранные формы корректировки чисел и текста.
Процедура построения диаграммы
Sub graph()Application.Caption = "MINOS SUMMER IT PRACTICE"
xxx = Sheets("a").Range("s23")
' проверяем наличие расчетных ячеек
For i = 1 To xxx
If IsEmpty(Sheets("a").Cells(2 + i, 2)) = True Or IsEmpty(Sheets("a").Cells(2 + i, 5)) = True Then k = k + 1
Next i
If k > (xxx / 2) Then
MsgBox ("ячейки с данными пусты пусты. пожалуйста введите данные заново и нажмите кнопку расчет")
Exit Sub
End If
' и если оно удовлетворяет нашим потребностям то мы начинаем строить график
xxx = Sheets("a").Range("s23")
Sheets("a").Range("e3", Cells(2 + xxx, 5)).Select
With Selection
Charts.Add
ActiveChart.ChartType = xlColumnClustered
r1 = Sheets("a").Cells(3, 2).Address(rowabsolute:=False, columnabsolute:=False)
c1 = Sheets("a").Cells(2 + xxx, 2).Address(rowabsolute:=False, columnabsolute:=False)
ActiveChart.SeriesCollection(1).XValues = Sheets("a").Range(r1, c1)
ActiveChart.Location Where:=xlLocationAsNewSheet
End With
With ActiveChart
.HasLegend = False
.HasTitle = True
.ChartTitle.Characters.Text = "расход горючего кг/км"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "фамлия шофера"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "расход"
End With
End Sub
Процедура ввода данных из файла
Sub vvod()
Application.Caption = "MINOS SUMMER IT PRACTICE"
'вводим путь к файлу
Path = InputBox("введите путь к файлу", "чтение из файла")
ActiveSheet.Unprotect
'снимаем защиту с листа
Dim TextLine As String
'объявляем тектовую переменную
Open CStr(Path) For Input As #1 ' Открывает файл.
Do While Not EOF(1)
' и пока не кончиться файл
Line Input #1, TextLine
l = l + 1
' считаем строки в файле
Loop
Close #1
xxx = l / 3
xx1 = Sheets("a").Range("s23")
If xx1 >= xxx Then
a = xx1
Else
a = xxx
End If
' устраиваем зачистку содержимого и границ
For i = 1 To a + 5
For j = 1 To 7
Sheets("a").Cells(2 + i, j).Select
Selection.ClearContents
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
If Selection.MergeCells = True Then
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
End If
Next j
Next i
' ввод значений из файла
Open CStr(Path) For Input As #1
Do While Not EOF(1)
For i = 1 To xxx
For j = 1 To 3
Line Input #1, TextLine
Sheets("a").Cells(2 + i, 1 + j) = TextLine
Sheets("a").Cells(2 + i, 1) = i
Next j
Next i
Loop
Close #1
' обрисовка клеток
For i = 1 To xxx
For j = 1 To 5
Sheets("a").Cells(2 + i, j).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next j
Next i
k = i + 2
' объединяем ячейки и пишем надпись Итого
Sheets("a").Range(Cells(k, 1), Cells(k, 2)).Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Sheets("a").Cells(k, 1) = " ИТОГО "
' дорисуем отсавлшиеся клетки в строке итого
For j = 3 To 5
Sheets("a").Cells(k, j).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next j
Sheets("a").Range("s23") = xxx
' вернем защиту на лист
ActiveSheet.Protect
End Sub
Процедура сохранения в файл
Sub output()Application.Caption = "MINOS SUMMER IT PRACTICE"
'объявляем массивы
Dim fuel() As Single 'расход топлива
Dim way() As Single 'пробег
Dim driver() As String ' фамилия шофера
xxx = Sheets("a").Range("s23")
' переприсваиваем размерностии массивам
ReDim driver(xxx)
ReDim fuel(xxx)
ReDim way(xxx)
Path = InputBox("введите путь к файлу", "сохранение в файл", "c:\data.txt") ' вводим путь к файлу
Open CStr(Path) For Output As #1
For i = 1 To xxx
' выводим в файл значения массивов
driver(i) = Sheets("a").Cells(2 + i, 2)
fuel(i) = Sheets("a").Cells(2 + i, 3)
way(i) = Sheets("a").Cells(2 + i, 4)
Print #1, driver(i)
Print #1, fuel(i)
Print #1, way(i)
Next i
Close #1 ' закрываем файл
MsgBox ("данные помещены в файл" & " " & Path & ". Для чтения даных нажмите кнопку Чтение из файла")
End Sub
Процедура выхода из приложения
Sub outdoor()Application.Caption = "MINOS SUMMER IT PRACTICE"
If Not (ActiveWorkbook.Saved) Then
ActiveWorkbook.SAVE
End If
Application.Quit
End Sub
Инструкция по использованию программного продукта
Первым этапом работы с программой является ввод данных. Ввод данных можно осуществить как вручную, так и из файла. Для ввода данных вручную ребуется нажать кнопку «Ввод данных» и в появляющихся диалоговых окнах вводить данные. Ввод данных вручную происходит по столбцам. Для ввода данных из тектового файла тебцуется навжать кнопку «Чтение из файла» и в появившемся диалоговом окне указать путь к файлу, в котором находяться данные. Внимание – программа читает данные из тектовых файлов и сохраняет также в тектовые файлы!!! Образец указания пути - «C:\directory\file.txt».
Далее, если во введеных данных есть ошибка то ее можно исправить, выделив ячейку в которой требуется произвести исправления и нажать унопку «Корректировка». А экране отобразиться форма, в тектовом поле которой следует ввести новое значение для изменяемой ячейки и нажать кнопку «Заменить».
После необходимой корректировки данных наступает этап расчета данных. Для осуществления этой операции следует нажать кнопку «Расчет». Далее программа автоматически рассчитает столбец с относительным показателем, подведет итоги и выберет запись с наименьшим расходом топлива на 1 километр пробега.
Рассчитав показатели, можно построить график, нажав кнопку «Построить график». На отдельном листе, рядом с листом программы, появиться гистограмма построенная по расчетому столбцу, и подпишет фамилия шоферов.
Сохранение данных производиться в текстовый файл, по умолчанию маска пути сохраняемого файла такова “C:\data.txt”. Пользователь может указать любой путь, в т.ч. накопители на гибких магнитных дисках и flash-накопители.
Кнопка «Выход» закрывает приложение и сохраняет находящиеся в нем данные а данном рабочем листе.
Приведем пример. Дан введенный массив исходных данных:
Табл.1 Исходные данные введеные пользоваетелем
№ п/п |
Фамилия шофера |
Расход горючего всего, кг |
Пробег, км |
Расход горючего на 1 км, кг |
|
1 |
2 |
3 |
4 |
1 |
иванов |
122,00 |
250,00 |
|
2 |
петров |
101,00 |
201,00 |
|
3 |
сидоров |
102,00 |
202,00 |
|
4 |
веточкин |
103,00 |
203,00 |
|
5 |
прохоров |
104,00 |
204,00 |
|
6 |
клочков |
222,00 |
205,00 |
|
7 |
мурошниченко |
106,00 |
206,00 |
|
8 |
хромов |
107,00 |
207,00 |
|
9 |
петухов |
108,00 |
208,00 |
|
10 |
иващенков |
109,00 |
209,00 |
По нажатию кнопки расчет, призойдёт расчет четвертой колонки и подведеие итогов.
Табл.2 Результат расчета по исходным данным
№ п/п |
Фамилия шофера |
Расход горючего всего, кг |
Пробег, км |
|||
|
1 |
2 |
3 |
4 |
||
1 |
иванов |
122,00 |
250,00 |
0,49 |
||
2 |
петров |
101,00 |
201,00 |
0,50 |
||
3 |
сидоров |
102,00 |
202,00 |
0,50 |
||
4 |
веточкин |
103,00 |
203,00 |
0,51 |
||
5 |
прохоров |
104,00 |
204,00 |
0,51 |
||
6 |
клочков |
222,00 |
205,00 |
|||
7 |
мурошниченко |
106,00 |
206,00 |
0,51 |
||
8 |
хромов |
107,00 |
207,00 |
0,52 |
||
9 |
петухов |
108,00 |
208,00 |
0,52 |
||
10 |
иващенков |
109,00 |
209,00 |
0,52 |
||
ИТОГО |
1184,00 |
2095,00 |
5,67 |
|||
Наименьший расход топлива |
122 |
кг/км |
250 |
у шофера |
иванов |
После расчета данных построим график. Нажмеме кнопку «Построить график»
Рис.3 Образец построенной диаграммы.
Для сохранения данных следует нажать кнопку «сохранение в файл» и в поле ввести путь к файлу.
Рис.4 Даилоговое окно сохранения в файл
Достоинства и недостатки программы
Табл. 3. Достоинства и недостатки программы
Достоинства |
Недостатки |
Простота расчетов |
Полная зависимость от пакета MS Office |
Простота интерфейса |
|
Совместимость с любой версией MS Office |
|
Неограниченное число записей для обработки |
Список используемой литературы
Аляев Ю.А. Козлов О.А. Pascal, C++, Visual Basic. - М.: Финансы и статистика, 2002
Биллиг В.А., Дехтярь М.И.. VBA и Office 97. Офисное программирование.- М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1998.- 720 с.:ил.
Гарнаев А.Ю. Самоучитель VBA. 2-е издание, переработанное и дополненное. СПб.: BHV —Санкт-Петербург, 2004. ISBN 5-94157-410-Х
Кузьменко В.Г. Базы данных в Visual Basic и Visual Basic for Applications. Самоучитель. – М.: ооо «Бином-Пресс», 2004. ISBN 5-9518-0049-8
- Разработка типовой конфигурации для рекрутинговых агентств в системе 1С: Предприятие 8
- Распознавание принадлежности объектов к заданным классам детерминированными методами
- Растительные ресурсы Волгоградской области
- Расчет отчислений страховых взносов во внебюджетные фонды РФ
- Региональная экономика на примере Вологодской области
- Реинжиниринг автоматизированной системы БАЗ филиала ОАО СУАЛ
- Ресторан "День и ночь"
- Психолого-педагогическая характеристика личности учащегося
- Психолого-педагогічна характеристика 10-А класу
- Работа планово-экономического отдела МУП "Комбинат школьного питния"
- Работа психолога в детском дошкольном учреждении
- Работа с программным обеспечением компьютера
- Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
- Разработка и реализация алгоритмов обработки данных, получаемых с помощью сканирующих нанотвердомеров семейства НаноСкан