Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену ПО 2014.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
211 Кб
Скачать
☆

Vba функции работы со строками

ASC(строковое значение) – применяется для получения числового ASCII кода заданного символа. В качестве параметра можно передать как целую строку (проверка произойдет для первого символа в строке), так и один символ или пробел.

Chr(код символа) – работает в обратном порядке по сравнению с предыдущей функцией. В качестве параметра мы передаем ASCII код, а на выходе получаем символ по заданному коду. Данная строковая VBA функция актуальна в тех случаях, когда нужно вывести служебный символ, например, кавычки, хотя чаще, используются именованные VBA константы.

InStr(строка1, строка2, [старт]) – предназначена для поиска последовательности знаков (строка2) в заданной строке (строка1). Можно также задать начальную позицию для поиска вхождения (необязательный параметр “старт”).

InStrRev(строка1, строка2, [старт]) – аналог предыдущей функции, но поиск происходит в обратном порядке.

Left(строка, длина) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки (параметр “ строка ”), начиная слева.

Right(строка, длина) – позволяет вернуть заданное количество знаков для выбранной строки, начиная справа.

Mid (строка, длина, старт) – позволяет вернуть заданное количество знаков (параметр “длина”) для выбранной строки, начиная с заданной позиции (параметр “старт”).

Len(строка) – определяет численное количество символов в строке.

LCase(строка) – предназначена для преобразования всех символов в переданной строке в нижний регистр.

UCase(строка) – предназначена для преобразования всех символов в переданной строке в верхний регистр.

LSet(строка, длина) – заполняет содержимое переменной символами из другой переменной начиная слева, длина не изменяется, лишние знаки будут обрезаны, а вместо недостающих, будут подставляться пробелы.

RSet(строка, длина) – логика работы та же, что и для предыдущей vba функции работы со строками, но процесс происходит справа.

LTrim(строка) – удалить пробелы слева в строке

RTrim(строка) – удалить пробелы справа в строке

Trim(строка) – удалить пробелы справа и слева в строке

Replace() – замена в строке одних символов на другие

Space(количество_пробелов) – формирование строки из заданного количества пробелов

String(количество, символ) – формирование строки из заданного количества прописанных символов

Spc() – применяется для формирования вывода данных в консольном окне командной строки. Происходит размножение пробелов, учитывая ширину командной строки.

StrComp(строка1, строка2) – сравнение двух строк, вернет 0 при равенстве, и -1 в противном случае.

StrConv(строка, метод, [LCID]) – данная функция vba является универсальной, так как позволяет преобразовать заданную строку в различные вариации (верхний и нижний регистр, кодировка, перевод байт).

  • Строка – собственно, строковое значение, над которым нужно провести преобразование.

  • Метод – задает метод преобразования, данный параметр может принимать следующие значения:

  1. vbUpperCase – перевод в верхний регистр, значение 1

  2. vbLowerCase – перевод в нижний регистр, значение 2

  3. vbPropperCase – перевод первых символов всех слов в верхний регистр, а остальные символы – в нижний, значение .

  4. vbWide – применяется для кодировки восточных языков. Перевод символов в один байт с двухбайтовых. Значение 4.

  5. vbNarrow – аналог предыдущему параметру, но тут происходит перевод двух байт в один, значение 8.

  6. vbKatakana – происходит преобразование символов алфавита Хирагана в символы для алфавита Катана, применим для японского языка, значение 16.

  7. vbHiragana – аналог предыдущего параметра, но тут происходит преобразования вида Катана в Хирагана, значение 32. VBA строковые функции

  8. vbUnicode – перевод заданной строки в Unicode кодировку, значение 64.

  9. vbFormatUnicode – перевод из кодировки Unicode в стандартную, значение 128.

  • LCID – параметр не является обязательным, (vba строковые функции) он задает идентификатор региональных настроек. По умолчанию значение LocaleId, то есть, то значение, что установлено в панели управления.

StrReverse(строка) – инвертировать расположение знаков в строке, проще говоря, “отзеркаливает”.

Tab() – позволяет размножить символы табуляции в заданном количестве. Помимо этого, для вставки табуляции применяется именованная константа vbTab.

  1. Функции преобразования типов. Примеры.

Синтаксис

CBool( выражение )

CByte( выражение )

CCur( выражение )

CDate( выражение )

CDbl( выражение )

CDec( выражение )

CInt( выражение )

CLng( выражение )

CLngLng( выражение ) (действительно только для 64-разрядных платформ).

CLngPtr( выражение )

CSng( выражение )

CStr( выражение )

CVar( выражение )

Обязательное выражение-аргумент — это любое строковое выражение или числовое выражение.

Возвращаемые типы

Имя функции определяет возвращаемый тип, как показано ниже.

Функция

Возвращаемый тип

Диапазон выражения-аргумента

CBool

Boolean

Любое допустимое строковое или числовое выражение.

CByte

Byte

От 0 до 255.

CCur

Currency

От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.

CDate

Date

Любое допустимое выражение даты.

CDbl

Double

От -1,79769313486231E308 до -4,94065645841247E-324 для отрицательных значений; от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений.

CDec

Decimal

+/-79 228 162 514 264 337 593 543 950 335 для чисел без десятичных знаков. Для чисел с 28 десятичными знаками диапазон составляет +/-7,9228162514264337593543950335. Наименьшим возможным числом, отличным от нуля, является число 0,0000000000000000000000000001.

CInt

Integer

От -32 768 до 32 767; дробная часть округляется.

CLng

Long

От -2 147 483 648 до 2 147 483 647; дробная часть округляется.

CLngLng

LongLong

От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807; дробная часть округляется. (Действительно только для 64-разрядных платформ).

CLngPtr

LongPtr

От -2 147 483 648 до 2 147 483 647 для 32-разрядных систем; от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 для 64-разрядных систем; дробная часть округляется в обоих типах систем.

CSng

Single

От -3,402823E38 до -1,401298E-45 для отрицательных значений; от 1,401298E-45 до 3,402823E38 для положительных значений.

CStr

String

Диапазон значений, возвращаемых функцией CStr, зависит от выражения-аргумента.

CVar

Variant

Диапазон совпадает с типом Double для числовых значений и с типом Stringдля нечисловых значений.

Dim MyDouble, MyString

MyDouble = 437.324 ' MyDouble is a Double.

MyString = CStr(MyDouble) ' MyString contains "437.324".

Dim MyDouble, MyByte

MyDouble = 125.5678 ' MyDouble is a Double.

MyByte = CByte(MyDouble) ' MyByte contains 126.

  1. Ввод и вывод данных. Функция InputBox. Функция MsgBox. Примеры.

Dim Input

Input = InputBox("Введите Ваше имя: ")

MsgBox (" Вы ввели: " & Input )

MsgBox ( x & y)

Для организации диалога с пользователем VBA представляет две встроенные функции - MsgBox и InputBox. Окно сообщений MsgBox выводит сообщения для пользователя, а окно ввода InputBox обеспечивает возможность получения информации от пользователя.

Функция MsgBox() выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.

Формат функции MsgBox:

MsgBox (Prompt [, Buttons] [, Title] [, HelpFile, Context])

Назначение параметров:

  • Prompt – строковое выражение, отображаемое как сообщение в диалоговом окне;

  • Title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, в строку заголовка помещается имя приложения, из которого запускается программа VBA;

  • HelpFile – строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне; обычно это файл, который вы уже должны были создать с помощью Windows Help Compiler. Если этот параметр указан, необходимо также указать параметр Context;

  • Context – числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот параметр указан, необходимо указать также параметр HelpFile;

  • Buttons – числовое выражение, которое задает количество и тип кнопок в диалоговом окне MsgBox. Buttons указывает также кнопку по умолчанию в диалоговом окне и содержит ли это диалоговое окно стандартные значки Windows для предупредительных сообщений и запросов пользователя. Значения Buttons можно получить из справочной системы.

Простой пример использования функции MsgBox:

Sub sample3()

MsgBox "Видите ли вы две кнопки?", vbYesNo + vbInformation, "Сообщение"

End Sub

В данном примере MsgBox применяется не в виде функции, а в виде процедуры (т.е. не возвращает никакого значения). Следовательно, код выбранной кнопки нигде не сохраняется и не может быть использован. Чтобы определить, какая кнопка была нажата, MsgBox необходимо вызвать как функцию, т.е. сохранить возвращаемое значение в переменную .

Использование MsgBox

Sub sample4()

Dim res ' объявляем переменную

вызываем MsgBox и сохраняем значение в переменной

res = MsgBox("Видите ли вы две кнопки?", vbYesNo + vbInformation, "Сообщение")

Debug.Print res ' печатаем полученное значение

End Sub

При выполнении этого макроса, когда пользователь выбирает кнопку Yes или No в переменной res сохраняется число, соответствующее выбранной кнопке.

Вместо возвращаемых функцией MsgBox целочисленных значений удобнее пользоваться предопределенными константами VBA. В таб. 11 приведены возвращаемые значения констант функции MsgBox.

Таблица 11. Возвращаемые значения функции MsgBox

Константа

Означает, что пользователь нажал кнопку

vbAbort

Стоп (Abort)

vbCancel

Отмена (Cancel)

vbIgnore

Пропустить (Ignore)

vbNo

Нет (No)

vbOk

Ок

vbRetry

Повтор (Retry)

vbYes

Да (Yes)

Проверка возращаемого значения MsgBox

Sub sample5()

вызываем MsgBox и сохраняем значение в переменной

res = MsgBox("Видите ли вы две кнопки?", vbYesNo + vbInformation, "Сообщение")

' проверяем, какая кнопка нажата

If res = vbYes Then : MsgBox "Вы нажали Yes", , "Результат выбора"

Else : MsgBox "Вы нажали No", , "Результат выбора"

End If

End Sub

Функция InputBox() выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста, а затем возвращает значение типа String, содержащее текст, введенный в поле. Формат функции InputBox:

InputBox (Prompt [, Title] [, Default] [, XPos] [, Ypos] [, HelpFile, Context])

Назначение параметров:

  • Prompt – строковое выражение, отображаемое как сообщение в диалоговом окне;

  • Title – строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, в строку заголовка помещается имя приложения;

  • Default – строковое выражение, отображаемое в поле ввода и используемое по умолчанию, если пользователь не введет другую строку. Если этот параметр опущен, поле ввода изображается пустым;

  • Xpos и Ypos – числовые выражения, которые указывают местоположение окна ввода и являются координатами верхнего левого угла диалогового окна; Xpos – горизонтальное расстояние от левого края окна; Ypos – вертикальное расстояние от верхнего края окна. Если эти параметры опущены, диалоговое окно выравнивается по центру экрана;

  • HelpFile – строковое выражение, определяющее имя существующего файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот параметр указан, необходимо также указать параметр Context;

  • Context – числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот параметр указан, необходимо указать также параметр HelpFile.

Приведем пример использования функции InputBox для получения имени пользователя.

Sub sample6()

Dim username As String

username = InputBox("Введите ваше имя ", "Пример 6")

MsgBox ("Здравствуйте, "+username)

End Sub

  1. Условная инструкция (If ... Then ... Else). Примеры.

Блочная форма:

If <условие> then < оператор 1>:

Else <оператор 2>:

End if;

If <условие> then

Else

If <условие> then

-

End if;

End if;

If <условие> then

Else if<условие> then

End if;

Пример:

If (n1 + n) = p1 Then

b1 = b1 + s * 2

Else

If (n1 + n < 7 And p1 < 7) Or (n1 + n > 7 And p1 > 7) Then

b1 = b1 + s

Else: b1 = b1 - s

End If

End If

If b1 <= 0 Or b1 >= b Then

If b1 >= b Then

MsgBox ("вы выйграли")

Else

MsgBox ("вы проиграли")

End If

  1. Оператор выбора варианта (Select Case). Примеры.

Select Case number

Case 1 To 4

Msgbox("первый этаж")

Case 5 to 8

Msgbox("второй этаж")

Case 9 To 12

Msgbox ("третий этаж")

Case Else

Msgbox("квартиры с таким номером нет ")

End Select

  1. Оператор цикла с предусловием (While … Wend). Примеры.

While <условие>

<оператор>

Wend

Counter = 0

While Counter < 20

Counter = Counter + 1

Wend

  1. Операторы цикла с условиями (Do … Loop). Примеры.

Do while /until<условие>

<оператор>

Exit do

Loop while/until<условие>

Do While summ <= 1000

        summ = summ + 1

    Loop

    Label1.Caption = summ

    summ = 0

    Do

        summ = summ + 1

    Loop While summ <= 1000

    Label2.Caption = summ

    summ = 0

    Do Until summ >= 1000

        summ = summ + 1

    Loop

    Label3.Caption = summ

    summ = 0

    Do

        summ = summ + 1

    Loop Until summ >= 1000

    Label4.Caption = summ 

  1. Оператор цикла с параметром (For ... Next). Примеры.

For <переменная счётчик>=<нач знач> to <кон знач> step<знач>

<операторы>

Next<переменная>

Пример:

For i = 1 To 10 Step 2

        a = a +1

    Next i

  1. Оператор цикла для работы с коллекциями (For … each). Примеры.

For each <переменная> in <семейство/коллекция>

<>

Next

For Each my_slide In pr.ActivePresentation.Slides

Set my_shape = my_slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 20, 20, 100, 400)

my_shape.TextFrame.TextRange.Text = "Михайлова Н.А."

my_shape.TextFrame.TextRange.Font.Bold = True

my_shape.TextFrame.TextRange.Font.Size = 9

my_shape.TextFrame.TextRange.Font.Color = -634567

Next

  1. Инструкция With. Примеры.

With objectExpression

[ statements ]

End With

Термин

Определение

objectExpression

Обязательный. Выражение, результатом которого является объект. Выражение может быть произвольно сложным и вычисляется только один раз. Результатом выражения могут быть данные любого типа, включая простейшие типы.

statements

Необязательный. Один или несколько операторов между With и End With, которые могут ссылаться на члены объекта, создаваемого при вычислении выражения objectExpression.

End With

Обязательный. Завершает определение блока With.

Dim theCustomer As New Customer

With theCustomer

.Name = "Coho Vineyard"

.URL = "http://www.cohovineyard.com/"

.City = "Redmond"

End With

  1. Массивы. Описание массивов. Изменение нижней границы индексов (Option Base).Динамические массивы. Изменение границ массивов (ReDim). Примеры.