Функция Choose
Возвращает значение, выбранное из списка аргументов.
Choose(индекс, вариант-1[, вариант-2, ... [, вариант-n]])
Пример.Генерирует случайное число от 0 до 7 и по полученному значению выбирает соответствующий цвет.
Private Sub SelectCase ( )
Dim I As Integer, result As String
I = Int((7 * Rnd) + 1)
result = Choose(I, "красный", "оранжевый", "желтый", "зеленый", "голубой", "синий", "фиолетовый")
MsgBox result, vbOKOnly
End Sub
Функции работы со строками
Синтаксис функции |
Описание функции и примеры |
CHR(13) |
Вставка символа перехода на следующую строку в текст |
Asc(строка) |
Возвращает Ascii код символа пример: Dim MyNumber MyNumber = Asc("A") ' вернет код 65 |
InStr([стартовая позиция, ] строка, подстрока[,compare]) |
Возвращает в переменную типа Variant(Long) найденную позицию подстроки в строке, начинает поиск либо с начала строки, либо со стартовой позиции. Пример. Dim SearchString, SearchChar, MyPos SearchString ="XXpXXpXXPXXP" 'строка, в которой будет поиск. SearchChar = "P" ' искомый символ "P".
' Поиск подстроки в строке начинается с 4 позиции. Возвращает 6. MyPos = Instr(4, SearchString, SearchChar, 1) |
LCase(строка) |
Возвращает заданное символьное выражение, переписанное строчными буквами. Пример. Dim UpperCase, LowerCase Uppercase = "Hello World 1234" 'Строка для изменения Lowercase = Lcase(UpperCase) 'Возвращает "hello world 1234".
|
UCase(строка) |
Возвращает заданное символьное выражение, переписанное прописными буквами. Пример. Dim LowerCase, UpperCase LowerCase = "Hello World 1234" 'Строка для изменения UpperCase = UCase(LowerCase) ' Возвращает "HELLO WORLD 1234".
|
Left(строка,количество символов) |
Возвращает из символьного выражения заданное число символов, начиная с самого левого. Dim AnyString, MyStr AnyString = "Hello World" ' Исходная строка MyStr = Left(AnyString, 1) ' Возвращает "H". MyStr = Left(AnyString, 7) ' Возвращает "Hello W".
|
Right(строка,количество символов) |
Возвращает из символьного выражения заданное число символов, начиная с конца строки. |
Len(строка|имя переменной) |
Возвращает количество символов в символьном выражении. Dim MyString, MyLen MyString = "Hello World" 'Исходная строка MyLen = Len(MyString) ' Возвращает 11.
|
LTrim(строка) |
Возвращает заданное символьное выражение, удалив из него начальные пробелы. |
RTrim(строка) |
Возвращает символьную строку, которая получается в результате удаления из символьного выражения конечных пробелов. |
Trim(строка) |
Удаляет начальные и концевые пробелы из заданного символьного выражения и возвращает усеченное выражение в виде символьной строки. |
Mid(строка, стартовая позиция [,длина]) |
Возвращает подстроку из строки, начиная со стартовой позиции указанной длины. Пример: Dim MyString, FirstWord, LastWord, MidWords MyString = "Mid Function Demo" 'Исходная строка. FirstWord = Mid(MyString, 1, 3) ' Возвращает "Mid". LastWord = Mid(MyString, 14, 4) ' Возвращает "Demo". |
Replace(строка, подстрока искомая, подстрока замены [,стартовая позиция [,количество замен [,compare]]]) |
Просматривает символьное выражение в поисках другого символьного выражения (подстроки искомой), а затем заменяет каждое найденное выражение третьим символьным выражением (подстрокой замены), начиная со стартовой позиции в указанном количестве раз. |
Space(число) |
Вставить в строку указанное количество пробелов |
Текст к заданиям 1-4 скопируйте из папки с лабораторной работой исходный текст для заданий, который хранится в файле Исходный текст.doc, как показано в примере выше. Создайте новый модуль с названием МодульСтроки. Поочередно создайте частные процедуры в созданном модуле с названиями Zadanie1 - Zadanie4 и выполните задания в них:
Задание 1:Удалить в тексте лишние пробелы. Лишними считаются те, которые идут непосредственно за пробелом. Посчитать количество исправлений.
Задание 2: Посчитать доли процентов встречи следующие букв: "а", "в", "и", "п", если суммарный процент встречаемости всех этих букв = 100% или а% + в% + и% + п% = 100%.
Задание 3:По правилам оформления машинописных текстов перед знаками .,!?:; пробелы не ставятся, но обязательно ставятся после этих знаков. Удалите лишние пробелы и расставьте недостающие. Посчитать количество исправлений.
Задание 4:Найти из исходного текста второе предложение и вернуть его в переменнуюPerem, а также вывести на экран весь исходный текст и найденное предложение.
Преобразование данных к определенным типам данных
CDate(выражение) |
Преобразование выражения к выражению с типом дата |
CStr(выражение) |
Преобразование выражения к выражению с типом строка |
CBool(выражение) |
Преобразование выражения к выражению с типом логический |
CByte(выражение) |
Преобразование выражения к выражению с типом байт |
CDbl(выражение) |
Преобразование выражения к выражению с типом число с двойной точностью |
CInt(выражение) |
Преобразование выражения к выражению с типом целое |
CLng(выражение) |
Преобразование выражения к выражению с типом длинное целое |
Cvar(выражение) |
Преобразование выражения к выражению с типом «вариант» |
CCur(выражение) |
Преобразование выражения к выражению с типом денежный |
Пример.
Private Sub Transmission_()
Dim str As String
Dim dat As Date
Dim integ As Integer
str = "123"
integ = CInt(str)
str = "12/12/2005"
dat = CDate(str)
str = "Число = " + CStr(integ) + " Дата = " + CStr(dat)
MsgBox str, vbOKOnly
End Sub
Функции работы с датой, временем
CDate(expression) |
Преобразование выражения к выражению с типом дата Dim MyDate, MyShortDate MyDate = "February 12, 1969" ' Определение даты. MyShortDate = CDate(MyDate) ' Преобразование строки в дату |
DATE( ) |
Вернуть текущую дату |
TIME( ) |
Вернуть текущее время |
YEAR(<дата>) |
Вернуть из даты только год |
MONTH(<дата>) |
Вернуть из даты только месяц |
DAY(<дата>) |
Вернуть из даты только день |
HOUR(<время>) |
Вернуть из времени только часы |
MINUTE(<время>) |
Вернуть из времени только минуты |
SEC(<время>) |
Вернуть из времени только секунды |
WEEKDAY(<дата>) |
Вернуть день недели из даты, указанной в скобках |
NOW |
Возвращает системные дату и время |
Задание 5:Создать новую процедуру, в которой разобрать на отдельные составляющие текущую дату и время и вывести значения на экран в следующем порядке (вместо многоточий):
"Сегодня: День = …, Месяц = …, Год = …, Часов = …, Минут = …, Секунд = …"
Задание 6:Создать новую процедуру, в которой в исходный текст, сохраненный в переменной Perem, после слова " время " вставить текущее время. Результат сохранить в той же переменнойPeremи вывести в виде сообщенияMsgBoxс кнопкой "ОК".
Математические функции и команды
Функция |
Результат |
ABS(число) |
Абсолютное значение числа |
ATN(число) |
Арктангенс числа |
COS (число) |
Косинус угла в радианах |
EXP(число) |
Экспонента числа |
INT(число) |
Преобразует число в его целое значение, отбрасывая его десятичную часть |
LOG(число) |
Натуральный логарифм числа |
число1Modчисло2 |
Остаток от деления двух чисел |
PI(число) |
Возвращает значение р |
RND(число) |
Случайное число в диапазоне от 0 до 1 |
Round(expression[,numdecimalplaces]) |
Округленное до указанного количества десятичных разрядов значение числа |
SIN(число) |
Синус угла в радианах |
SQR(число) |
Квадратный корень числа |
TAN(число) |
Тангенс угла в радианах |
Пример: Вывести значение формулы , гдеv0 = 0.123; R = 8,31; T = 273.
Private Sub Transmission_()
Dim v0, r, T, v As Double
v0 = 0.123
r = 8.31
T = 273
v = v0 * Exp(Sqr((r * T) / 45))
str = CStr(v)
MsgBox str, vbOKOnly
EndSub
Задание.Создать новую процедуру, в которой определяется значение следующей формулы