Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-Laboratorny_praktikum.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

8.Инструкция With

Как мы уже говорили, данная инструкция избавляет нас от утомительной обязанности использовать большое количество повторений имени одного и того же объекта. С инструкцией With мы уже сталкивались при написании программ , связанных с оформлением таблиц. В следующем примере обратите внимание на использование вложенных операторов With:

Sub Пример_с_With()

With ActiveWorkbook.Worksheets(1)

.Select

.Unprotect

With .Range("A1")

MsgBox .Value

.Value = 200

.RowHeight =60

.ColumnWidth = 20

.Font.Size = 20

.Interior.ColorIndex = 3

End With

End With

End Sub

Задание:

  1. Наберите текст этой программы в Модуль6 и протестируйте её.

  2. Перепишите это программу без использования оператора With, назвав её Пример_без_With. Протестируйте её выполнение.

9.Встроенные функции vba

Как вы знаете, в VBA имеется большой набор встроенных функций, которые раздвигают горизонты решаемых задач, делают возможным разработку приложений для любых сфер деятельности.

В Модуль7 наберите следующие программы и протестируйте их.

9.1.Математические функции

  1. Пример использования функции Sin:

Sub ФункцияSin()

Dim Num1

Dim Num2

Num1 = Число

Num2 = Sin(Num1)

MsgBox "Sin ( " & Num1 & " ) = " & Num2, "Синус числа"

End Sub

Function Число()

Число = InputBox("Введите число:", "Синус числа")

End Function

9.2.Функции проверки типов

Незаменимую роль в выявлении и перехвате ошибок играют функции проверки типов. Например, в предыдущем примере, если пользователь забудет ввести число, или щелкнет по кнопке Cancel или вместо числа введет символьную строку, возникнет аварийный останов.

Первые две ситуации (ввод пустого значения) можно «отловить», воспользовавшись функцией IsEmpty, которая проверяет, является ли переменная пустой или ей присвоено значение:

If IsEmpty(Num1) = False Then Exit Sub10

Для выявления символьной строки воспользуемся функцией IsNumeric. С внесенными изменениями программа ФункцияSin примет вид:

Sub ФункцияSin()

Dim Num1

Dim Num2

Num1 = Число

If IsEmpty(Num1) = False Then Exit Sub

If IsNumeric(Num1) = False Then

MsgBox "Некорректный ввод исходного значения!", _

vbExclamation, "Синус числа"

Exit Sub

End If

Num2 = Sin(Num1)

MsgBox "Sin ( " & Num1 & " ) = " & Num2

End Sub

Задание:

  1. Модифицируйте программу ОбратноеЧисло таким образом, чтобы она работала корректно (т.е. были исключены ошибки выполнения: деление на ноль, ввод пустого значения или символьной строки).

9.3.Функции преобразования форматов

Позволяют конвертировать один тип данных в другой. Это актуально, когда наблюдается несоответствие типов между используемым и требуемым значениями, например, аргументом встроенной функции должно быть число, а передаваемое в неё значение является строкой и т.д.

Полный перечень функций преобразования типов вы найдете в справочной системе, здесь же рассмотрим некоторые из них:

Sub ФункцияCInt()

'Переводит число в целочисленный формат:

Dim MyDouble, MyInt

MyDouble = 2345.5678

MyInt = CInt(MyDouble)

MsgBox "Число " & MyDouble & _

" в целочисленном формате запишется как " & MyInt, _

vbInfomation, "Целочисленный формат"

End Sub

  1. Следующие две программы выполните в пошаговом режиме, предварительно открыв окно локальных переменных и наблюдая за их значениями:

Sub ФункцииStr_CStr()

Dim MyString1 As String

Dim MyString2 As String

MyString1 = Str(459)

MyString2 = CStr(459)

MyString1 = Str(-459.65)

MyString2 = CStr(-459.65)

MyString1 = Str(459.001)

MyString2 = CStr(459.001)

End Sub

Sub ФункцияVal()

Dim MyValue

MyValue = Val("2345")

MyValue = Val(" 2 34 5")

MyValue = Val("23 and 45")

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]