- •Билет №1
- •Билет №2 Понятие объекта, свойств, методов и событий, присущих объекту. Синтаксис языка для работы со свойствами и методами. Примеры.
- •Вопрос №3
- •Вопрос № 4
- •Билет № 5 Константы и переменные. Описание и инициализация. Область видимости переменных. Примеры.
- •Вопрос №6 Операции. Приоритет операций. Примеры.
- •Вопрос 7. Типы данных. Примеры
- •Dim r As Byte
- •8.Управляющие конструкции If…Then и Select…Case. Примеры
- •9) Операторы цикла For…Next и Do…Loop. Особенности использования. Примеры
- •Функции работы со строками. Примеры.
- •Следующие три функции позволяют работать с массивом строк
- •И последние две функции генерируют строки символов
- •Функции работы с датами. Примеры.
- •12. Работа с объектом Range. Выделение диапазона. Свойства CurrentRegion и Selection. Примеры.
- •13)Работа с объектом Range.
- •14)Работа с объектом Range.
- •15) Работа с объектом Range.
- •4) Column Возвращает номер первого столбца в первой области, в указанном диапазоне. Свойство только для чтения.
- •5) Columns в отличие от предыдущего свойства, Columns возвращает не простое число, а объект Range, представляющий собой один столбец из всего диапазона.
- •6) Comment Возвращает объект Comment для Range. В данном случае Range должен определять одну ячейку.
- •Вопрос 16
- •Билет № 17 Редактор vba. Назначение. Окно редактора.
- •Вопрос 18.
- •19 Вопрос. Пользовательские формы.
- •Билет №21
- •Вопрос 22
- •End With
- •Вопрос 23
Следующие три функции позволяют работать с массивом строк
Split (<строка> [, <разделитель>]) - преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
Join (<массив Строк> [, <разделитель>]) - преобразует массив строк в одну строку с указанным разделителем.
' Соединяем два слова
Dim vArr(1 to 2)
Dim retval as String
vArr(1)="Русский"
vArr(2)="Проект"
retval=Join(vArr,"_")
Print retval
Filter (<массив Строк>, <строка Поиск>[, <включение>] [, <сравнение>]) - просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.
Эта функция имеет четыре аргумента:
<строка Поиск> - искомая строка;
<включение> - параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
<сравнение> - параметр, определяющий метод сравнения строк.
Еще три функции обеспечивают преобразование строк:
LCase (<строка>) - преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
' Преобразуем строчку в нижний регистр
Form1.Caption=LCase("РусСкий_ПРОект")
UCase (<строка>) - преобразует все символы строки к верхнему регистру;
' Преобразуем строчку в верхний регистр
Form1.Caption=UCase("русский_проект")
StrConv (<строка>, <преобразование>) - выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».
Dim mystring
mystring = "русский проект"
' Преобразуем первые буквы в прописные
Print StrConv(mystring, vbProperCase)
И последние две функции генерируют строки символов
Space (<число>) - создает строку, состоящую из указанного числа пробелов;
Dim MyString
' Вставляем 10 пробелов между словами
MyString = "Русский" & Space(10) & "Проект"
MsgBox MyString
String (<число>, <символ>) - создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.
' В данном примере функция String
' используется для генерации строк,
' содержащих указанное число
' повторяющихся символов
Dim MyString
MyString = String(3, "M") ' Возвращает "MMM"
MyString = String(5, 65) ' Возвращает "ААААА".Возвращает 5 раз символ,код которого 65
MyString = String(6, "Русский_Проект") ' Возвращает "РРРРРР".Повторяет 6 раз первый символ исходной строки
Функции работы с датами. Примеры.
Date()— возвращает текущую системную дату. Установить ее можно при помощи одноименного оператора, например, так:
1 пример: Date = #5/12/2006#
2 пример:' Выводим текущую системную дату в заголовке формы
Dim Today
Today=Date ' узнаем текущую системную дату
' Преобразуем в строку и выводим в заголовке формы
Form1.Caption = CStr(Today)
Time() — возвращает текущее системное время
Now() — возвращает дату и время вместе.
' Выводим текущую системную дату и время
Dim Today
Today=Now ' узнаем текущую системную дату и время
' Преобразуем в строку и выводим на форме
Print CStr(Today)
DateAdd() — возможность добавить к дате указанное количество лет, кварталов, месяцев и так далее — вплоть до секунд.
' Вычисляем дату на 15 дней более позднюю, чем текущая
Dim Today
Dim NewDate As Date
Today=Date ' узнаем текущую системную дату
NewDate=DateAdd("y",15,Today)
' Преобразуем в строку и выводим в заголовке формы
Form1.Caption = CStr(NewDate)
DateDiff() — возможность получить разницу между датами (опять таки в единицах от лет до секунд).
1 пример: Dim lDaysCnt As Long
lDaysCnt = DateDiff("d", "20.11.2012", Now)
MsgBox "С 20.11.2012 прошло дней: " & lDaysCnt
2 пример:' Вычисляем сколько дней осталось до 21 века
Dim Today as Date' сегодняшний день
Dim Millenium As Date' 1 день 21 века
Dim retval' возвращаемое значение
Today=Date ' узнаем текущую системную дату
Millenium="01.01.01"
retval=DateDiff("d",Today,Millenium)
Form1.Caption = CStr(retval) ' выводим в заголовке формы
Первый аргумент определяет период времени, в котором необходимо вернуть разницу между датами. Допустимые значения: "yyyy" Год "q" Квартал "m" Месяц "y" День года "d" День "w" День недели "ww" Неделя "h" Час "n" Минута "s" Секунда
DatePart() — очень важная функция, которая возвращает указанную часть даты (например, только год, только месяц или только день недели):
MsgBox "Номер недели года: " & DatePart("ww", Now)
Первый аргумент — период времени. Принимаемые значения те же, что и для функции DateDiff
DateSerial() — возможность создать значение даты, задавая месяц, год и день числовыми значениями:
' Вычисляем дату, предшествующую
' на 5 дней дате 1 августа 1966 года
Dim MyDate
MyDate = DateSerial(1966, 8,1 -4) ' возвращает 27.07.66
Print MyDate
DateValue()— делает то же, что и DateSerial(). Отличия — в формате принимаемых значений. Эта функция в качестве аргумента принимает дату в текстовом формате и преобразует её в формат даты:
' Извлекаем дату из строки
Print DateValue("27 Июля 1966")
Аналогичным образом (для времени) работают TimeSerial() и TimeValue()
'В этом примере аргументами функции TimeSerial
' являются не абсолютные значения,
' а числовые выражения. Возвращается время,
' на 6 часов и 15 минут более раннее,
' чем полдень, т.е. 5:45:00
Dim myTime
myTime=TimeSerial(12 - 6, -15, 0)
Day(), Year(), Month(), Weekday(), Hour(), Minute(), Second() — специализированные заменители функции DatePart(), которые возвращают нужную часть даты/времени (которую именно — видно из названия).
' Используем функцию для
' определения дня недели, соответствующего
' указанной дате
Dim MyDate
MyDate = "Июль 27, 1966" ' Присваиваем дату
Print Weekday(MyDate,vbMonday) ' возвращается 3, поскольку
' MyDate соответствует среде
' Выводим номер июля
Form1.Caption = Month("27/07/66")
' Определяем час,
' соответствующий указанному времени
Dim MyTime, MyHour
MyTime = #4:35:17 PM# ' присваиваем время
MyHour = Hour(MyTime) ' MyHour содержит 16
Print MyHour
' Вычисляем значение минуты
' из сегодняшней даты
Dim MyMinute
MyTime = Now
MyMinute = Minute(MyTime)
' Получаем значение минут
Print MyMinute
' Вычисляем значение секунды
Dim MyTime, MySecond
MyTime = #4:35:17 PM# ' присваиваем время
' MySecond содержит 17
MySecond = Second(MyTime)
Print MySecond
MonthName() — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.
' Выводим полное название седьмого месяца
Form1.Caption = MonthName(7)
Timer() — возвращает количество секунд, прошедших с полуночи.
' Используем Timer для
' временной остановки приложения.
' Кроме того, используем инструкцию DoEvents для передачи
' управления другим процессам на время паузы
Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Нажмите Да, чтобы прервать выполнение на 5 секунд", 4)) = vbYes Then
PauseTime = 5 ' Задает длительность
Start = Timer ' Задает начало паузы
Do While Timer < Start + PauseTime
DoEvents ' Передает управление другим процессам
Loop
Finish = Timer ' Задает конец паузы
TotalTime = Finish - Start ' Вычисляет длительность паузы
MsgBox "Длительность паузы: " & TotalTime & " секунд"
Else
End
End If
