Курсовая Программирование макросов в Excel
Работа добавлена на сайт bukvasha.net: 2015-10-25Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Министерство образования РФ
ГОУ ВПО Глазовский Государственный педагогический институт
Им. В.Г. Короленко
Колледж информационных и социальных коммуникаций
Курсовая работа
по учебной дисциплине
«Техническая разработка программных продуктов»
на тему: «Программирование макросов в Excel»
Выполнили студенты
группы: П – 31
Заякин А.Ю.
Подпись Дата
Научный руководитель:
Глазов 2004.
Содержание.
1. Введение……………………………………..…………………………….3
2. Глава I…………………………………………………...…………………5
3. Глава II…………………………………………………………………..…6
3.1 Язык программирования……………………………………..…..6
3.2 Блок схема …..…...………………………………………………...8
3.3 Схема связей ..…...………………………………………………...9
3.4 Программный код………………………….…………………….10
4. Заключение………………………………………………………………17
- Список используемой литературы……………………………………18
Введение
Цели
Цель курсовой работы показать на примере программирование макросов в Excel
Задачи
Создать программу, которая могла кодировать и декодировать документ Excel при нажатии определенного сочетания клавиш. По нажатию клавиш должно выводится окно для ввода пароля (для защиты от ошибки ввод пароля должен производится дважды), так же должны находится 2 переключателя которые устанавливают действие программы: кодировать или декодировать. Из-за большого объема информации следует выводить счетчик процентного состояния нашего процесса. Также должен присутствовать доступный интерфейс.
Гипотеза
Реализация алгоритма кодировки такова:
Вырезаем из выделенного объекта ячеек берем 1 ячейку и получаем из нее текстовое значение. Из этого значения вырезаем первый символ вырезаем и пароля первый символ складываем их ascii коды и получаем значение. Если наше значение больше допустимо возможного то вычитаем из него 255 и получаем ascii код символа. Преобразуем этот код в строку. Берем дальше второй символ и второй символ пароля и производи тоже действия и т.д. Если символов в пароле меньше чем строковое значение тогда при достижении последнего символа пароля переходим обратно на первый. Потом все полученные значения преобразуем в строку и присваиваем ячейке, из которой она было взято.
Для того что бы запустить программу надо открыть документ excel с программой, выделить нужную область с которой следует работать и нажать сочетание клавиш ctrl+k. Выбрать нужные настройки ввести пароль и нажать ОК. Состояние процесса выводится в прогресс бар приложения с помощью стандартных функций.
Глава
I
Глава
II
3.1. Язык программирования
.
Visual Basic разработан корпорацией Microsoft специально для создания приложений, работающих под операционными системами из семейства Windows. Последняя версия этого продукта - Visual Basic 6 – входит в состав пакета программ для профессиональной разработки визуальной разработки визуальных приложений Visual Basic 6 и представляет собой интегрированную среду разработки (IDE, Integrated Development Environment), то есть программную среду, содержащую инструменты, которые позволяют значительно ускорить процесс разработки и создание программ. Эти возможности ставят Visual Basic 6 в один ряд с такими признанными лидерами в области визуального программирования, как Visual C++, Delphi, Bridge View и т.д.
Благодаря своим возможностям в сочетании простотой освоения, диалекты Visual Basic (Visual Basic for Aplication и Visual Basic Script) широко используются в качестве внутренних языков во многих приложениях, например, в Microsoft Office, Visio, 1C.
Среда разработки Visual Basic 6 выпускается в трех изданиях:
· Visual Basic 6 для начинающих (Learning Edition), представляющее собой демонстрационную версию, в которую включены только основные возможности;
· Visual Basic 6 для профессионалов (Professional Edition), основная (стандартная) версия, включающая в себя большинство инструментов и дополнительных средств, позволяющих выполнять разработку приложений на профессиональном уровне;
· Промышленное издание Visual Basic 6 (Enterprise Edition), расширенная версия для разработчиков корпоративных систем. Это издание включает в себя большое количество инструментов, элементов управления и средств, позволяющих разрабатывать как простые, так и клиент- серверные приложения.
Предком Visual Basic был язык программирования Basic. Этот язык (Basic – Beginners Allpurpose Symbolic Instruction Code, многоцелевой код символьных инструкций для начинающих) был специально разработан для освоения основ программирования, создания простых программ и широко использовался для обучения школьников.
Язык объектного программирования Visual Basic, хотя и имеет в своем названии слово Basic, коренным образом отличается от своей основы. Во-первых, Visual Basic – это объектно-ориентированный язык, то есть язык оперирует объектами, над которыми производится действие, во-вторых, изменилась среда программирования – появилась возможность осуществлять непосредственное наблюдение за построением проекта, то есть проектировать приложение, и, в-третьих, изменился сам подход к программированию. Если раньше код программы выполнялся последовательно от начала к концу, то теперь четкая структура последовательности выполнение операторов ”размыта” – весь программный код разбит на процедуры (которые так же называют подпрограммами), которые могут быть вызваны из любого места программы.
3.2. Блок схема
.
3.3. Схема связей
.
1. Cвязь предназначенная для запуска кодирования выделенной области.
2. Процедура декодирования берет значение и передает его а ей возвращается декодированное значение.
3. Cвязь предназначенная для запуска декодирования выделенной области.
4. Процедура кодирования берет значение и передает его а ей возвращается закодированное значение.
3.4. Программный код
.
UserForm1 (главная форма проекта)
'переменная для хранения пароляпароля
Dim password As String
' переменная для имени активного листа, и рабочего промежутка
Dim n, m, List
' переменная для значения ячейки
Dim g
' нажатие на кнопку отмена
Private Sub ComCanc_Click()
' выход
End
End Sub
' нажатие на кнопку ОК
Private Sub ComOK_Click()
' если в одно из текстовых полей не введена информация тогда выводится окно с предупреждением и происходит выход
If Txt1.Text = "" Or Txt2.Text = "" Then MsgBox "Введите пароль": Exit Sub
' если пароль неверен тогда выводится окно с предупреждением и происходит выход
If Txt1.Text <> Txt2.Text Then MsgBox "Пароль введен неправильно": Exit Sub
' присваиваем текст введенного пароля переменной хранящей пароль
password = Txt1.Text
' если отмечен процесс кодирование тогда переходим к процедуре кодирования
If OptionButton1.Value = True Then Call coding
' если отмечен процесс декодирование тогда переходим к процедуре декодирования
If OptionButton2.Value = True Then Call decoding
' обращение к процедуре нажатие на кнопку отмена
Call ComCanc_Click
End Sub
' процедура кодирования
Private Sub coding()
' обращаемся к процедуре которая находит раьочий лист и размер рабочего промежутка
Call schet
' переменной NewSheet присваиваем имя нашего листа
Set NewSheet = Sheets.Item(List)
'запись в переменную 0 процентного статуса
gh = " " & "0%" & " "
' запускаем цик по столбцам и строкам
For i = 1 To 256
' при достижении кратного 20 процентного состояния записываем в переменную процент выполнепния
If i / 50 = Int(i / 50) Then gh = " " & Str(i / 50 * 20) & "%" & " "
' используем знак | как индикатор выполнения который изменяется при переходена новое поле
gh = gh + "|"
' выводим в статус бар идентификатор выполнения
Application.StatusBar = gh
For j = n To m
' присваиваем переменной g значение выбранной ячейки по параметрам цикла
g = NewSheet.Cells(j, i).Value
' если ячейка пустая то переходим к другой ячейки
If g = "" Then GoTo 1
' обращаемся к процедуре кодирования строки и присваиваем значение в выбранное поле
NewSheet.Cells(j, i).Value = codsv(g)
1 Next
Next
' выводим в статус бар идентификатор выполнения
Application.StatusBar = " 100% Процесс кодирования успешно завершон."
End Sub
' процедура декодирования
Private Sub decoding()
' обращаемся к процедуре которая находит раьочий лист и размер рабочего промежутка
Call schet
' переменной NewSheet присваиваем имя нашего листа
Set NewSheet = Sheets.Item(List)
gh = " " & "0%" & " "
' запускаем цик по столбцам и строкам
For i = 1 To 256
' при достижении кратного 20 процентного состояния записываем в переменную процент выполнепния
If i / 50 = Int(i / 50) Then gh = " " & Str(i / 50 * 20) & "%" & " "
' используем знак | как индикатор выполнения который изменяется при переходена новое поле
gh = gh + "|"
' выводим в статус бар идентификатор выполнения
Application.StatusBar = gh
For j = n To m
' присваиваем переменной g значение выбранной ячейки по параметрам цикла
g = NewSheet.Cells(j, i).Value
' если ячейка пустая то переходим к другой ячейки
If g = "" Then GoTo 1
' обращаемся к процедуре декодирования строки и присваиваем значение в выбранное поле
NewSheet.Cells(j, i).Value = decsv(g)
1 Next
Next
' выводим в статус бар идентификатор выполнения
Application.StatusBar = " 100% Процесс декодирования успешно завершон."
End Sub
'процедура которая находит раьочий лист и размер рабочего промежутка
Private Sub schet()
t = InStr(1, addres, "$")
t1 = InStr(t + 1, addres, "$")
t2 = InStr(t1 + 1, addres, "$")
' определяем верхний предел
n = Mid(addres, t1 + 1, t2 - t1 - 2)
t3 = InStr(t2 + 1, addres, "$")
' определяем нижний предел
m = Mid(addres, t3 + 1, Len(addres) - t3)
' определяем имя лист
List = Mid(addres, 1, InStr(1, addres, ":") - 1)
End Sub
' процедура декодирования переданной строки
Function decsv(p) As String
' Цикл с 1 по последний элемент переданной строкт
For i = 1 To Len(p)
' ссуматор выводит индекс элемента пароля будет использоватся в кодированиии
c = c + 1
' если индекс не существует тогда использеум 1 индекс
If c >= Len(password) Then c = 1
' получаем ascii код используемого символа
a1 = Asc(Mid(p, i, 1))
' получаем ascii код символа пароля с которым будем ссумировать
a2 = Asc(Mid(password, c, 1))
' ссумируем 2 ascii кода и получаем закодированный ascii код
a1 = a1 - a2
' если код выкодит за дозволенные промежутки тогда тогда приводим в нормальное значение
If a1 <= 0 Then a1 = a1 + 255
' создаем закодированную строку
TempStr = TempStr + Chr(a1)
Next
' возвращаем закодированную страку
decsv = TempStr
End Function
' процедура декодирования переданной строки
Function codsv(p) As String
' Цикл с 1 по последний элемент переданной строкт
For i = 1 To Len(p)
' ссуматор выводит индекс элемента пароля будет использоватся в кодированиии
c = c + 1
' если индекс не существует тогда использеум 1 индекс
If c >= Len(password) Then c = 1
' получаем ascii код используемого символа
a1 = Asc(Mid(p, i, 1))
' получаем ascii код символа пароля с которым будем дессумировать
a2 = Asc(Mid(password, c, 1))
' ссумируем 2 ascii кода и получаем декодированный ascii код
a1 = a1 + a2
' если код выкодит за дозволенные промежутки тогда тогда приводим в нормальное значение
If a1 >= 256 Then a1 = a1 - 255
' создаем декодированную строку
TempStr = TempStr + Chr(a1)
Next
' возвращаем декодированную страку
codsv = TempStr
End Function
' процедура активации формы
Private Sub UserForm_Activate()
' выводим адреса выбранной области
Label3.Caption = addres
End Sub
' процедура загрузки формы
Private Sub UserForm_Initialize()
' выводим адреса выбранной области
Label3.Caption = addres
End Sub
Module
1 (модуль)
' переменная для хранения имени используемого листа и верхнего и нижнего предела строк кодирования
Public addres
' Макроз вызывается нажатием Cnrl-k и запускает макрос2
Sub Макрос1()
Application.Run "Книга1.xls!Макрос2"
End Sub
Sub Макрос2()
' запускает главную форму проэкта
UserForm1.Show
End Sub
ЭтаКнига.
xls
(события связанные с файлом)
' процедура запускается при выборе ячеек таблици
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
' переменной присваиваем именя используемого листа и верхнего и нижнего предела строк кодирования
Module1.addres = Sh.Name & ":" & Target.address
End Sub
Заключение.
В этой программе мы показали основные возможности программирования макросов в Excel. Мы реализовали проект по кодировке информации. Научились: получать и передавать обратно данные из ячеек, обращаться к ячейкам, записывать в статус бар проекта текстовые сообщения, получать информацию о размере выделенных ячеек, запускать по нажатию клавиш модули, создавать формы и модули.
Программа VBА и язык VB дает неограниченные возможности для программиста т.к. существует, облегчает его учесть малым нагромождением функций и процедур предусмотренными программистами Microsoft на стадии разработки языка.
Список используемой литературы.
1. А.Н.Степанов, “Информатика”,2003г.
2. Ю.Шафрин, ”Информатика”, 2003г.
3. Журин А.А., ”Самый современный самоучитель работы на компьютере”, 2004г.
4. С.Симонович, Г.Евсеев., “Программирование”, 2001г.
5. С.Симонович, Г.Евсеев .,“Windows 98”, 2001г.
6. Б.Карпов Visual Basic 6: специальный справочник. – Спб.: Питер, 2002. – 416 с.