Подборка по базе: Документ Microsoft Word (2).docx, Документ Microsoft Word.docx, Документ Microsoft Word.docx, Документ Microsoft Word.docx, Документ Microsoft Word (2).docx, Документ Microsoft Word.docx, Презентация Microsoft Office PowerPoint.pptx, Создать Документ Microsoft Word.DOCX, Документ Microsoft Word (3).docx, Документ Microsoft Word 97–2003.doc
Ширева С.Н.
Практикум по VBA для
Microsoft Excel
Учебное пособие
РГППУ
2017r
Аннотация
Практикум предназначен для студентов, изучающих язык VBA на лабораторных работах или самостоятельно.
Практикум может использоваться на курсах, изучающих VBA для MS Excel. Операторы языка
VBA, подпрограммы и функции, объекты Excel рассматриваются на примерах, сопровождаемых необходимыми теоретическими сведениями.
Обсуждаются алгоритмы работы с объектами Excel и пользовательскими формами. По каждой теме приведено по 12 вариантов индивидуальных заданий.
1
СОДЕРЖАНИЕ
Введение ………………………………………………………………………………………………. 3
Лабораторная работа № 1 Макросы ………………………………………………………. 4
Автоматическая запись макросов ………………………………………………………. 5
Просмотр макросов. ………………………………………………………………………….. 7 1.
Задания для самостоятельной работы ………………………………………. 11
Лабораторная работа № 2 Объекты листа …………………………………………… 11
Cвойство объекта Range ………………………………………………………………….. 11
Свойство Cells ………………………………………………………………………………… 13
Свойство Offset ……………………………………………………………………………….. 13
Метод Union и свойство Areas …………………………………………………………. 14
Свойства Column и Row (R/O Integer) ……………………………………………… 15
Свойства Columns и Rows ……………………………………………………………….. 15
Свойство CurrentRegion …………………………………………………………………… 16
Свойство Address …………………………………………………………………………….. 17
Методы Select и Activate …………………………………………………………………. 17
Метод Clear …………………………………………………………………………………….. 18
Задания для самостоятельной работы ………………………………………………. 22
Лабораторная работа № 3 Функции ……………………………………………………. 23
Математические функции ……………………………………………………………….. 24
Функции преобразования данных ……………………………………………………. 25
Функции даты и времени ………………………………………………………………… 26
Строковые функции ………………………………………………………………………… 29
Пользовательские функции ……………………………………………………………… 31
Порядок создания пользовательской функции …………………………………. 32
Задания для самостоятельной работы ………………………………………………. 36
Контрольные вопросы …………………………………………………………………….. 38
Лабораторная работа 3 Ветвления………………………………………………………. 39
Задания для самостоятельной работы ………………………………………………. 42
Ветвления. Сложные условия ………………………………………………………….. 44
Задания для самостоятельной работы ………………………………………………. 45
Контрольные вопросы …………………………………………………………………….. 48
Лабораторная работа № 5 Оператор выбора ……………………………………….. 49
Задания для самостоятельной работы ………………………………………………. 51
Контрольные вопросы …………………………………………………………………….. 58
Лабораторная работа № 6 Циклы с условием ……………………………………… 59
Задания для самостоятельной работы ………………………………………………. 62
Контрольные вопросы …………………………………………………………………….. 64
Лабораторная работа № 7 Цикл со счетчиком …………………………………….. 65
Выход из циклов и процедур ………………………………………………………………. 65
Задания для самостоятельной работы ………………………………………………. 68
Лабораторная работа № 8 Вложенные циклы ……………………………………… 71
Цикл For Each … Next …………………………………………………………………….. 72
Задания для самостоятельной работы ………………………………………………. 73
2
Лабораторная работа № 9 Массивы ……………………………………………………. 76
Одномерные массивы ……………………………………………………………………… 76
Многомерные массивы ……………………………………………………………………. 76
Статические и динамические массивы …………………………………………….. 77
Объявление массивов ……………………………………………………………………… 77
Изменение размерности динамического массива ……………………………… 78
Задания для самостоятельной работы ………………………………………………. 80
Лабораторная работа № 10 Объекты и коллекции ………………………………. 83
Использование свойств объектов …………………………………………………….. 85
Использование методов объекта ……………………………………………………… 87
Объектные переменные …………………………………………………………………… 89
Ссылка на объекты с помощью With…End With ……………………………….. 90
Работа с коллекциями объектов и контейнерами объектов ………………. 91
Объект APPLICATION ……………………………………………………………………. 92
Свойства объекта APPLICATION ……………………………………………………. 92
Методы объекта APPLICATION ……………………………………………………… 94
Объект WORKBOOK и семейство WORKBOOKS …………………………… 94
Свойства объекта WORKBOOK и семейства WORKBOOKS …………… 94
Методы объекта WORKBOOK и семейства WORKBOOKS ……………… 95
Объект Worksheet и семейство Worksheets ………………………………………. 97
Свойства объекта WORKSHEET и семейства WORKSHEETS …………. 97
Методы объекта WORKSHEET и семействаWORKSHEETS ……………. 97
Обработчики событий …………………………………………………………………….. 99
События объекта Application …………………………………………………………. 100
События объекта Workbook …………………………………………………………… 100
События объекта Worksheet …………………………………………………………… 101
Задания для самостоятельной работы …………………………………………….. 102
Лабораторная работа № 11 Пользовательские формы ……………………….. 105
Наиболее часто используемые свойства объектов UserForm ………………. 106
Методы объекта UserForm …………………………………………………………….. 107
Наиболее часто используемые методы для объектов UserForm ………. 107
События объекта UserForm ……………………………………………………………. 107
События объектов UserForm ………………………………………………………….. 108
Элементы управления ……………………………………………………………………. 109
Стандартные элементы управления, включенные в VBA …………………… 109
Cвойства стандартных элементов управления……………………………………. 110
Задания для самостоятельной работы …………………………………………….. 119
Лабораторная работа № 12 Отбор данных ………………………………………… 122
Задания для самостоятельной работы. ……………………………………………. 124
3
Введение
VBA (Visual Basic for Applications) — это язык программирования, встроенный во множество отдельных программ и прикладных пакетов — от приложений Microsoft Office (включая Microsoft Project и Microsoft Visio) и до таких мощных пакетов, как AutoCAD, CorelDraw и Adobe Creative Suite, не говоря уже о многочисленных специализированных приложениях, предназначенных для управления производственными процессами, учета финансовых ресурсов или информационной поддержки клиентов.
Этот практикум поможет изучить основные принципы программирования на языке и получить необходимые навыки для создания собственных программ на этом языке. Ее цель — помочь пользователю самостоятельно научиться программировать на языке VBA. Для восприятия материала книги не требуется знакомства с другими языками программирования и наличия программистского опыта.
Вместе с языком программирования VBA вы изучите мощную и гибкую среду разработки, которая является прекрасным выбором при работе над каким-либо проектом, предназначенным для использования в среде Microsoft
Windows. Некоторые разделы практикума посвящены работе с объектами
Excel. В практикуме приведена справочная информация по этим объектам.
Для закрепления материала в конце каждой лабораторной работы предлагаются задания для самостоятельного выполнения.
4
Лабораторная работа № 1
Макросы
Макрос — это программа, состоящая из списка команд, которые должны быть выполнены приложением. Макрос служит для объединения нескольких различных действий в одну процедуру, которую вы можете легко вызвать.
Этот список команд состоит в основном из макрокоманд, которые тесно связаны с командами приложения, в котором вы создаете макрос — т. е. с командами Word, Excel или других приложений Microsoft Office. Запись макросов позволяет не просто запомнить последовательность вызовов команд меню, нажатий на кнопки мыши и ввод данных с клавиатуры, но и перевести эти действия на объектно-ориентированный язык программирования Visual Basic для приложений (Visual Basic for
Applications, в дальнейшем просто VBA) и сохранить их в виде готовой к вы- полнению программы.
VBA является полноценным языком программирования, позволяющим записать не только последовательно выполняемые пользователем действия, но и содержащим все необходимые конструкции языка программирования высокого уровня, включая разнообразные средства организации ветвлений, циклов и ведения диалога с пользователем. Весьма удобный редактор VBA позволяет не только писать и редактировать программы, но и вести их отладку.
Можно выделить следующие разновидности макросов:
Командные макросы — это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню — т. е. изменение окружения и основных объектов приложения
Пользовательские функции — работают аналогично встроенным функциям Excel. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения
Макрофункции — представляют собой сочетание командных макросов и пользовательских функций. Наряду с тем, что они могут использовать аргументы и возвращать результат, подобно пользовательским функциям, они могут также изменять среду приложения, как и командные макросы.
Чаще всего эти макросы вызываются из других макросов, и активно используются для модульного программирования. Если необходимо выполнить ряд одинаковых действий в различных макросах, то обычно эти действия выделяются в отдельную макрофункцию (подпрограмму), которая вызывается всякий раз, когда необходимо выполнить эти повторяющиеся действия.
5
Автоматическая запись макросов
Для автоматической записи макроса надо выполнить следующие действия:
1. В обычном режиме выполнить команды, которые надо сохранить в макросе.
Это надо сделать, чтобы четко выполнить последовательность команд.
2. Перейти в режим записи макроса.
3. Задать имя макроса.
4. Выполнить необходимую последовательность команд.
5. Выйти из режима записи макроса.
Рассмотрим подробнее пункты со 2 по 5.
Для переход в режим записи макроса надо на вкладке Разработчик выполнить команду Макрос_Относительные_ссылки’>Макрос
Запись макроса. В появившемся окне задать имя макроса.
Рис.1
Имя макроса может содержать буквы и цифры и не может содержать пробелы. Можно связать выполнение макроса с комбинацией клавиш. Эта комбинация так же задается в окне записи макроса. В этом же окне можно описать, что делает данный макрос.
После щелчка по кнопке OK. Выполняется последовательность команд, которую надо запомнить в макросе.
В конце выполняется команда Макрос
Остановить запись.
Вызвать макрос можно двумя способами.
1 способ
Выполнить команду Макросы
Макросы. В окне Макрос (Рис.2) выбрать нужный макрос и щелкнуть по кнопке Выполнить.
6
В этом же окне можно удалить макрос, который работает не правильно.
2 способ
Нажать комбинацию клавиш, связанную с данным макросом.
Задание 1
Создать макрос, который выделяет диапазон таблицы A1:D5, и выполняет его обрамление. Внешние границы обрамления — двойная линия. Внутренние линии — одинарные. Результат:
Имя макроса – обрамление1. Комбинация клавиш: Ctrl+й.
После записи макроса перейдите на новый лист и вызовите макрос любым из описанных способов. Обратите внимание, что во всех случаях выполнение макроса связано с конкретным диапазоном A1:D5, но не привязано к листу данной книги.
Можно записать командный макрос привязанный не к конкретным ячейкам, а к положению курсора. Для этого надо записывать макрос в режиме относительной адресации.
7
Задание 2
Создать макрос, который выполняет обрамление 4 столбцов и 5 строк.
Внешние границы обрамления — двойная линия. Внутренние линии — одинарные. Порядок выполнения:
1. Установите курсор в ячейку A1.
2. Выполните команду Макрос
Запись макроса.
3. Задайте имя макроса обрамление2. комбинация клавиш Ctrl+ц.
4. После щелчка по кнопке OK выполните команду Макрос
Относительные ссылки.
5. Выделите диапазон A1:D5.
6. Выполните заданное обрамление диапазона.
7. Выполните команду Макрос
Остановить запись.
После записи макроса поставьте курсор в ячейку D8 и выполните макрос
обрамление2.
В обоих заданиях выделение диапазона выполнялось в макросе. Это приводило к тома, что обрамление выполнялось для диапазона определенных размеров – 4 столбца и 5 строк. Если выделение диапазона выполнять до записи макроса, то размер диапазона обрамления будет произволен.
Задание 3
Выполните обрамление диапазона A1:D5. Но сначала надо выделить данный диапазон, а потом выполнить команду Макрос
Запись макроса.
Задайте имя макроса обрамление3, комбинация клавиш – Ctrl+у.
После записи макроса выделите ячейки B10:K12 и вызовите макрос
обрамление3.
Сохраните книгу под именем Макросы.
Просмотр макросов.
При записи макросов Макрорекодер записывает все выполненные команды в макрос. Эти макросы находятся в модулях и можно увидеть текст этих макросов и, при необходимости, изменить. Это широко используется в программировании VBA. Нет необходимости точно запоминать команды форматирования, копирования и т.д. Достаточно записать их в командный макрос, а потом изменить так как надо. И в нашем случае не надо помнить команды обрамления на языке VBA. Макрорекодер их сам запишет.
Для просмотра текста макроса надо:
1. Выполнить команду Макрос
Макрос.
2. Выбрать нужный макрос.
3. Щелкнуть по кнопке Изменить.
8
После этого откроется окно Visual Basic и в окне Модуля1 будет выведен код макроса обрамление1.
Любой макрос имеет следующую структуру:
Sub НазваниеМакроса()
Команда VBA
Команда VBA
End Sub
Текст зеленого цвета – это комментарии. Комментарии начинаются со знака «апостроф» и не выполняются компьютером.
Рассмотрим код макроса обрамление1.
Sub обрамление1()
‘
‘ обрамление1 Макрос ‘
‘ Сочетание клавиш: Ctrl+й ‘
9
Range(«A1:D5»).Select „Выделяется диапазон A1:D5
„Все команды выполняются для выделенного диапазона
„ диагонального обрамления нет
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
„ задается стиль левой границы
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble „двойная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
„ задается стиль верхней границы
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble „двойная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
„ задается стиль нижней границы
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble „двойная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
„ задается стиль правой границы
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble „двойная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
„ задается стиль внутренней вертикальной
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous „одинарная сплошная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
„ задается стиль внутренней горизонтальной
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous „одинарная сплошная линия
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Рассмотрим код макроса обрамление2.
Sub обрамление2()
‘
‘ обрамление2 Макрос ‘
‘ Сочетание клавиш: Ctrl+ц ‘
ActiveCell.Range(«A1:D5»).Select
10
‗от активной ячейки выделяется диапазон A1:D5
Остальной текст программы совпадает с обрамление1.
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Код макроса обрамление 3
Sub обрамление3()
‘
‘ обрамление3 Макрос ‘
‘ Сочетание клавиш: Ctrl+у ‘Все команды выполняются для выделенного диапазона
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
11
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального образования
«КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ ЭНЕРГЕТИЧЕСКИЙ УНИВЕРСИТЕТ»
Н.К. ПЕТРОВА, Л.Р. БЕЛЯЕВА
ПРОГРАММИРОВАНИЕ НА VBA В ПРИМЕРАХ И ЗАДАЧАХ
ЧАСТЬ II. РАБОТА С СИМВОЛЬНЫМИ ДАННЫМИ И МАССИВАМИ
Практикум
Казань 2011
2
УДК 681.3 ББК 32.973 П30
Рецензенты:
кандидат физико-математических наук, доцент Казанского государственного энергетического университета Т.Р.Абдульмянов;
кандидат педогогических наук, доцент Казанского государственного энергетического университета С.М. Куценко
П30 Петрова Н.К., Беляева Л.Р.
Программирование на VBA. Часть II. Работа с символьными переменными и массивами. Практикум / Н.К. Петрова, Л.Р. Беляева. – Казань: Казан. гос. энерг. ун-т, 2011. – 50 с.
Предлагается своего рода «Задачник» по программированию, ориентированный на обучение студентов основам алгоритмизации математических и инженерных задач средствами языка VBA в приложении к Excel.
Содержание второй части охватывает разделы программы, посвященные работе с символьными переменными и массивами. Изложение материала оформлено в виде отдельных разделов, в которых кратко представлены основные теоретические сведения.
Типовые задачи даются с подробными решениями. Имеется большое количество задач для самостоятельной работы. Наряду с типовыми задачами, практикум содержит большое количество задач повышенной сложности. Задания делятся на 2 типа: 1 – умение «читать» готовые программы, 2 – разрабатывать программы по шаблонному алгоритму и программы с неявным алгоритмом.
Практикум предназначен для студентов всех специальностей КГЭУ, изучающих «Информатику», «Информационные технологии».
УДК 681.3 ББК 32.973
© Казанский государственный энергетический университет, 2011
3
“Года работы над искусственным интеллектом достаточно,
чтобы заставить поверить в Бога.” Перлис Алан
Предисловие
Вучебной литературе имеется не так много пособий по практической работе на языке VBA (Visual Basic for Application), ориентированных на решение математических, инженерных задач. Данный практикум разработан
сцелью восполнить существующий пробел. Он предназначен для обучения – самостоятельно или под руководством преподавателя – основам алгоритмизации с использованием языка VBA в приложении к одному из самых популярных приложений MS Office – MS Excel.
Во второй части практикума включены типовые задачи и даются методы и примеры их решения. Каждому разделу предшествует краткое теоретическое введение, состоящее из определений и описания операторов языка. Достаточно большое количество примеров демонстрируют разные возможности работы с символьными и индексированными переменными. Задачи основаны на полученных в первой части практикума знаниях по работе с ячейками рабочего листа Excel, с диалоговыми окнами ввода и вывода.
Многие задачи на «чтение программ» снабжены ответами.
Втексте практикума приняты такие соглашения:
1.Элементы языка VBA в текстовой части практикума выделены
таким стилем.
2.Курсивом выделены новые термины, имена переменных в текстовой части практикума, в комментариях к операторам программ. “Таким
шрифтом” записаны значения для ввода или вывода данных.
3.Тексты программ приводятся, как правило, копией листа модуля.
4.При описании структуры операторов [необязательные операнды] взяты в квадратные скобки, альтернативные параметры – Yes | No – написаны через вертикальную черту.
5.В тексте используются следующие сокращения:
ОП – оперативная память; ПК – компьютер; п/п – программа-процедура; п/ф – программа-функция.
При подготовке данного практикума авторы использовали многолетний опыт работы по преподаванию курса информатики в Казанском государственном энергетическом университете и Казанском федеральном университете.
4
I.ОБРАБОТКА СИМВОЛЬНЫХ ПЕРЕМЕННЫХ
1.Средства VBA для работы с символьными переменными
1.1.Символьные переменные, строковые функции
Компьютер работает не только с числами, но и с символами. Последовательность символов, используемых программе, называется строкой. Символьные или строковые константы представляют собой набор произвольных символов, принадлежащих языку Basic. Строковые константы на VBA помещаются в кавычки, например “Луна” или “X=12”. Для описания строковых переменных используется опция String или постфикс $. В табл. 1 показаны параметры двух разновидностей опции String.
Строковые типы данных |
Таблица 1 |
|||
String |
Текстовая информация |
10 байт + 1 байт |
От 0 до |
|
на каждый |
приблизительно |
|||
(строка) переменной длины |
символ |
2 миллиардов |
||
символов |
||||
Строка постоянной длины |
От 1 до |
|||
String*n |
Длина строки |
приблизительно |
||
в n символов |
||||
65 400 |
В VBA предусмотрен специальный набор средств, чтобы можно было выполнять разнообразные операции со строками.
Объединение строк (конкатенация) выполняется с помощью опера-
тора & (можно также использовать +). При объединении двух строк вторая помещается в конец первой, например, в результате команды “пример “ & “№1” получим строку “пример №1”, а по команде
“25” & “693” получим строку “25693”..
Кроме указанного оператора, в VBA используется большое количество
встроенных строковых функций. Рассмотрим некоторые из них.
Функция Len( ) используется для определения длины строки. Общий вид команды:
n% = Len(строка).
Например, функция Len(“файл”) возвращает число 4.
5
Функция Instr([номер позиции], строка, подстрока) – осуществляет поиск подстроки в строке, начиная с символа, указанного [номером позиции]. Если [номером позиции] не указан, то поиск осуществляется с 1-го символа. Например:
В приведенном примере сочетание “форма” встретилось в слове “Ин форматика”, начиная с позиции номер 3.
Функции UCase( ) и LCase( ) используются, чтобы изменить регистр символов заданной строки на верхний или нижний соответственно. Например:
a$ = “Информатика“ : b$ = Ucase(a$) : c$ = LCase(a$).
В результате переменная b$ = “ИНФОРМАТИКА”, а c$ = “информатика“.
Функции Left( ), Right( ) и Mid( ) используются для выделения части строки. Общий вид команд Left или Right:
Новая строка = Left | Right (Исходная строка, число символов).
Например, в результате команды Left(“самолет”, 3) получим строку «сам», а по команде Right (“пароход”, 3) получим строку «ход».
Функция Mid( ) является более универсальной и часто заменяет собой Left( ) и Right( ). Общий вид команды:
Новая строка = Mid (Исходная строка, начальная позиция, [число символов]).
Например, в результате команды Mid (“информатика”, 3, 5) получим строку «форма». Если необязательный параметр [число символов] опущен, то выделяются символы, начиная с с начальной позиции до конца строки, например, по команде Mid (“подберезовик”, 4) получим строку «березовик». Если начальная позиция указана равной нулю или больше длины строки, то результатом выполнения функции будет пустая строка. Например, если строка программы содержит операторы:
a$ = Mid (“процессор”, 10, 2): b$ = Mid (“процессор”, 0, 3),
то результатом их выполнения будет значение ”” (пусто) для обеих переменных a$ и b$.
6
Функции LTrim ( ), RTrim ( ) и Trim ( ) отсекают пробелы с начала, конца или с обеих сторон строки соответственно.
В VBA используются также встроенные функции преобразования ти-
пов данных.
Функция SPACE (n) – формирует строку из n пробелов.
Функция STRING (n, строка_символов) – формирует строку из n одинаковых символов, равных первому символу в строке_символов:
1.2. Функции преобразования типов данных и прочие полезные функции
Функция Str( ) преобразует число в строку текста. Если число положительное, то первым символом в полученной строке будет пробел. Общий вид команды:
Строка = Str(число)
Например, в результате команды Str(895) получим строку « 895», а по команде Str (-5678) получим строку « 5678».
Функция Val( ) преобразует строку, содержащую цифры, в число, последовательно считывая символы строки, пока не встретится нецифровой знак. Общий вид команды:
Number$ = Str (Строка)
Например, в результате команды Val(“45Т89”) получим число 45, а по команде Val (“К593”) получим число 0.
Функция Date возвращает текущую дату компьютера в формате “дд.мм.гггг” значением типа Variant.
7
Функция Chr( ) преобразует ASCII-код символа в соответствующий символ. Например, в результате команды Chr(72) получим символ H, а по команде Chr (65) получим символ А. Одним из распространенных символов при формировании строк является Chr (13) – переход к началу новой строки:
Функция Asc ( ) выполняет обратную задачу: преобразует символ в соответствующий ему ASCII-код. Например, в результате команды Asc(“0”) получим код 48, а по команде Asc (”a“) получим код 97.
2. Пример решения типовых задач и задачи для самостоятельного решения
2.1.Пример решения типовых задач
На листе Excel вызвана определенная пользователем функция text, фактические параметры которой указаны в приведенной ниже палитре функции. Какой результат появится на листе?
Решение:
1. Сопоставляем формальные (a$, b$) и фактические параметры:
8
a$ = «Kazan Power Engineering University» b$ = «U»
2.nl равно числу символов в строке a$ – считаем, получается nl = 34.
3.Открываем цикл по i:
Проверяем i = 1 < nl?, Да! Следовательно, приступаем к выполнению функции Instr: начиная с первой позиции, просматривается строка a$ и в ней ищется позиция, на которой стоит заглавная U – это позиция № 25. Значит k = 25.
4.k не равно нулю, следовательно переходим на оператор с меткой 20, досрочно покидая цикл For … Next.
5.Рассчитываем величину nl – k + 1 = 34 – 25 + 1 = 10.
6.Берем 10 правых символов из строки a$, получаем строку
“University”.
Заканчиваем программу.
Ответ: На листе Excel появится слово “University”.
2.2. Задания для самостоятельного чтения программ
Задание 1. Какое сообщение появится после выполнения предложенной программы?
Текст программы:
Задание 2. Какие данные появятся на листе Excel при вызове пользовательской функции test2, фактические параметры которой указаны на палитре функции?
9
Задание 3. На компьютере установлена дата 12 июля 2010 г. Какое сообщение появится после выполнения предложенной программы?
Текст программы:
Задание 4. Какие данные появятся на листе Excel при вызове пользовательской функции test4 при вводе данных, показанных на палитре функции? Какое сообщение будет выведено оператором Msgbox? Как вы ответите на вопрос программы?
Задание 5.Какое сообщение появится после выполнения предложенной программы?
Текст программы:
10
Задание 6. Какой результат будет показан в окне сообщения программы? Как вы ответите на вопрос программы?
Текст программы:
Задание 7. В ячейке А2 листа вызвана функция test7 с указанными фактическими параметрами. Какой результат появится после ввода функции? Как вы ответите на вопрос программы?
Задание 8. Какой результат будет показан в окне сообщения программы test8, если в диалоговом окне ввода ввести слово “SALUTE!”?
Текст программы:
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
This page lists 52 Excel VBA Macros exercises. You can use the menu on the left to show just exercises for a specific topic.
This page lists 52 Excel VBA Macros exercises. You can use the menu above to show just exercises for a specific topic.
Software: | Excel VBA Macros |
Topic: | Forms |
Level: | Relatively easy |
Exercise: | Create a form to enter a film name and category, such that when you click on an ADD button the film is added to an Excel list. |
Go to exercise …
Software: | Excel VBA Macros |
Topic: | Forms |
Level: | Average difficulty |
Exercise: | A form for entering details of dinosaurs, including a combobox, listbox, option buttons and spinner buttons. |
Go to exercise …
Software: | Excel VBA Macros |
Topic: | Forms |
Level: | Harder than average |
Exercise: | Get a macro to run when you open a workbook which creates a list of all of the worksheets and displays these in a form combo box for quick nvaigation. |
Go to exercise …
You can search our full list of VBA exercises here.
Or why not learn to do them the right way on one of our classroom VBA training courses in the UK, or on one of our live online VBA courses wherever you are in the world?