Выполнение лабораторной работы. 1. Создать новый документ Word и сохранить его в рабочей папке с именемLab3.docx

1. Создать новый документ Word и сохранить его в рабочей папке с именем Lab3.docx.

2. Создать новый модуль с именем Конвертор. Для этого:

- выполнить команду РазработчикÞКодÞVisual Basic или нажать клавиши Alt+F11;

- добавить новый модуль командой ВставкаÞМодуль;

- в окне свойств задать имя- Конвертор.

3. Добавить в модуль Конвертор текст процедуры, преобразующий введенные в английской раскладке клавиатуры символы в соответствии с русской раскладкой. Для этого:

- установить курсор в окно модуля и выполнить команду ВставкаÞПроцедура;

- в окне Вставка процедуры ввести имя Conv_En_Ru, выбрать тип процедуры - Подпрограмма (Sub), выбрать область определения процедуры - Общая (Public), нажать " Ok ";

- ввести текст приведенной ниже процедуры Conv_En_Ru:

Public Sub Conv_En_Ru()

'Преобразование символов в соответствии с русской раскладкой клавиатуры

Const Str_En = "'qwertyuiop[]asdfghjkl;zxcvbnm,./" + _

"~QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?"

Const Str_Ru = "ёйцукенгшщзхъфывапролджячсмитьбю." + _

"ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЯЧСМИТЬБЮ,"

Dim Sym As String,

Sym1 As Range

Dim PosSym As Byte

Dim TextResult As String

TextResult = ""

For Each Syml In Selection.Characters

Sym = Syml

PosSym = InStr(Str_En, Sym)

If PosSym >0 Then

Sym = Mid$(Str_Ru, PosSym, 1)

Else

Select Case Sym

'Кавычки переходящие в "э"

Case Chr(39): Sym = "э"

Case Chr(145): Sym = "э"

Case Chr(146):Sym ="э"

Case Chr(34): Sym = "Э"

Case Chr(147): Sym ="Э"

Case Chr(148):Sym ="Э"

Case Chr(171): Sym = "Э"

Case Chr(187): Sym = "Э"

Case Else: 'Кодировки совпадают

End Select

End If

TextResult = TextResult + Sym

Next

Selection.LanguageID = wdRussian

Selection.TypeText TextResult

End Sub

4. Подготовить пример для отладки процедуры. Для этого в окне редактора VBA нажать на инструментальной панели " Стандартная " кнопку " Вид Microsoft Word " и, перейдя в документ Word, создать таблицу. Ввести в первую ячейку первой строки текст всех символов, расположенных на алфавитно-цифровых клавишах в нижнем и верхнем регистре соответственно, расположив их в четыре строки, аналогично их расположению на клавиатуре:

'1234567890-=\~!@#$%^&*()_+| qwertyuiop[]QWERTYUIOP {} asdfghjkl;'ASDFGHJKL:" zxcvbnm,./ZXCVBNM<>?

Скопировать введенный текст во вторую ячейку первого ряда и затем выделить содержимое второй ячейки;

5. Выполнить процедуру Conv_En_Ru.

Для этого:

- перейти в редактор VBA;

- выполнить команду RunÞRun макроса или нажать клавишу F5, или нажать кнопку Run/UserForm.

6. Проанализировать полученный результат.

Возможно получение следующих результатов:

- выполнение процедуры завершилось аварийно - следует исправить синтаксическую ошибку и повторить выполнение процедуры;

- выполнение процедуры завершилось успешно, однако преобразование символов выполнилось неправильно - следует искать алгоритмическую ошибку, исправить ее и повторить выполнение программы;

- выполнение процедуры завершилось успешно, преобразование символов в соответствии с русской раскладкой выполнилось правильно - процедура отлажена и готова к использованию.

7. Добавить в модуль Конвертор процедуру Otl_э создания нового документа, содержащего текст на кавычки для отладки той части алгоритма процедуры Conv_En_Ru, которая преобразует введенный символ в букву "э". Текст процедуры:

Public Sub otl_э()

Dim Str_Sym As String

Set New_Doc = Documents.Add

New_Doc.Activate

Str_Sym = Chr(39) + Space(2) + Chr(145) + Space(2) + Chr(146) + Space(2)

Str_Sym = Str_Sym + Chr(34) + Space(2) + Chr(147) + Space(2) + _

Chr(148) + Space(2) + Chr(171) + Space(2) + Chr(187)

New_Doc.Paragraphs(1).Range.InsertBefore Text:=Str_Sym

New_Doc.SaveAs FileName:="Temp.doc"

End Sub

8. Выполнить процедуру Otl_э, убедиться в создании документа с именем Temp.doc. Документ должен содержать следующий текст кавычек: ' ' ' " " " «».

9. Выполнить процедуру Conv_En_Ru, убедиться в правильности преобразования кавычек в букву "э".

10. По аналогии с алгоритмом процедуры Conv_En_Ru, самостоятельно разработать процедуру Conv_Ru_En преобразования набранного в русской раскладке клавиатуры текста в соответствии с английской раскладкой и добавить ее в модуль Конвертор. Подготовить пример для отладки процедуры Conv_Ru_En. Для этого скопировать содержимое второй ячейки первой строки таблицы документа Lab7.doc в первую и вторую ячейки второй строки. Текст из второй ячейки второй строки выделить. Выполнить отладку процедуры.

11. Добавить в модуль Конвертор процедуру, создающую инструментальную панель Преобразование с кнопками для запуска процедур преобразования текста Conv_En_Ru и Conv_Ru_En.

Текст процедуры:

Public Sub CreatePanel()

' Создание панели

Dim bar As CommandBar

Dim ctrl As CommandBarButton

Dim found As Boolean

found = False

' поиск в коллекции CommandBars создаваемой панели

For Each bar In CommandBars

If bar.Name = "Преобразование" Then found = True

Next

If Not found Then CommandBars.Add

Name:="Преобразование",_Position:=msoBarTop

Set bar = CommandBars("Преобразование")

On Error Resume Next

'Добавление кнопок на панель

Set ctrl = bar.FindControl(Tag:="Conv_En_Ru")

If ctrl Is Nothing Then

Set ctrl = bar.Controls.Add(Type:=msoControlButton)

With ctrl

.Caption = "En->Ru"

.OnAction = "Conv_En_Ru"

.TooltipText = "Перевод в русскую раскладку клавиатуры"

.Style = msoButtonCaption

.Tag = "Conv_En_Ru"

End With

End If

Set ctrl = bar.FindControl(Tag:="Conv_Ru_En")

If Ctrl Is Nothing Then

Set ctrl = bar.Controls.Add(Type:=msoControlButton)

With ctrl

.Caption = "Ru->En".

OnAction = "Conv_Ru_En"

.TooltipText = "Перевод в английскую раскладку клавиатуры"

.Style = msoButtonCaption

.Tag = "Conv_Ru_En"

End With

End If

bar.Visible = True

End Sub

Пояснения к тексту процедуры:

Перед созданием панели проверяется, не существует ли панель с такимименем. Если панель существует, то она выводиться на экран и процедура завершает свою работу. Перед созданием кнопки с помощью метода FindControl проверяется, нет ли на панели кнопки с указанной меткой. Если нет, то кнопка добавляется. Caption задает текст на кнопке, OnAction осуществляет связь с кнопкой процедуры. Tag определяет метку, связанную с кнопкой. Выполнить отладку процедуры.

12. Продемонстрировать результаты работы процедур преподавателю.

13. Сохранить файл Lab3.doc.


ЛАБОРАТОРНАЯ РАБОТА №4.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: