Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Function f(ByVal x As Single) As SingleСодержание книги
Поиск на нашем сайте
f = Sin(x^2) + Cos(3*x) End Function Оператор вызова функции состоит из имени функции и списка фактических параметров, заключенных в скобки. Пример: y = f(x) ‘Оператор вызова функции. При необходимости можно указать область определения процедуры или функции: Private Sub Программа_Привет() – закрытая процедура. Возможен вызов из модуля, где она находится, то есть доступна для других процедур только того модуля, в котором она описана. Public Sub Программа_Привет() –открытая процедура. Возможен вызов из любого модуля, то есть доступна для всех других процедур во всех модулях. Static Sub Программа_Привет() –указывает, что значения локальных переменных процедуры сохраняются в промежутках времени между вызовами этой процедуры. Private Function f(ByVal x As Single, ByVal y As Single) As Single – закрытая функция. Возможен вызов из модуля, где она находится. Public Function f(ByVal x As Single, ByVal y As Single) As Single –открытая функция. Возможен вызов из любого модуля. Процедуры ввода-вывода через диалоговые окна
В сокращенном варианте инструкции ввода-вывода имеют вид: InputBox( <” сообщение” > ) MsgBox( <“ сообщение” > ) Пример: Sub Krb() Dim S As Integer Dim Sum As Single Dim P As Integer Dim Prom As Variant S = 5000 Do Prom = InputBox(“Введите значение P=”) IF Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric(Prom) P = Prom Sum = S + S*0.01*P MsgBox(“Результат S = ”) & CSng(Sum End Sub Вопросы для самоконтроля 1. Что понимается под параметрами-переменными и параметрами-значениями? 2. Какое различие между понятиями “формальные” и “фактические” параметры? 3. Способы передачи параметров-переменных и параметров значений. 4. Могут ли быть разными имена формальных и фактических параметров? 5. В какой последовательности должны располагаться имена параметров в операторах вызова процедуры и функции? 6. Способы вызова процедуры. Массивы Массив – набор однотипных переменных с одним именем, каждая из которых называется элементом массива и имеет свой номер (индекс). Массивы могут быть: одномерные (для нумерации элементов используется один индекс), двумерные (для нумерации элементов используются два индекса: номер строки, номер столбца) и N-мерные. Число измерений может достигать 60. Кроме того, массивы подразделяются на статические и динамические.
9.3.8.1. Статические массивы
Статическим называется массив с заранее известным количеством элементов. Синтаксис описания (объявления) статического массива: Dim < Имя массива > ( < верхняя граница > ) As <Тип > По умолчанию нижняя граница равна 0. Dim < Имя массива > ( < Нижняя граница > To < Верхняя граница > ) As < Тип > Примеры: Dim a(10) As Single ‘ Одномерный массив с начальной границей, равной 0. Dim S(3 To 5) As String ‘ Одномерный массив с явными границами. Dim Z(1 To 3, 1 To 5) As Byte ‘ Двумерный массив. Для задания по умолчанию нижней границы массива, равной 1, используется команда Option Base 1, которая вводится в начале модуля. Примеры: Option Base 1 --------------------------------------------------------------------------------------------- Sub Mas1() Dim a(5) As Integer Dim i As Integer, k As Integer WorkSheets(“Лист1”).Select ‘Выбрать Лист1 из семейства листов. Cells.Clear ‘Очистить ячейки рабочего листа. K = 2 For i =1 To 5 a(i) = Int(Rnd(i)*100) ‘Формирование массива a(i). Cells(k, i + 1) = a(i) ‘Вывод массива a(i) на рабочий лист. Next i End Sub Sub Mas2() Dim a(1 to 5) As Integer, k As Integer Dim i As Integer WorkSheets(“Лист1”).Select Cells.Clear K = 2 For i = 1 To 5 ‘Формирование массива a(i). a(i) = Int(Rnd(i)*100) Next i For i =1 To 5 ‘Вывод массива a(i) на рабочий лист. Cells(k, i + 1) = a(i) Next i End Sub Sub Dmas1() Dim i As Integer Dim j As Integer Dim a2(1 to 3, 1 to 5) As Integer WorkSheets(“Лист1”).Select Cells.Clear For i =1 To 3 ‘Формирование массива a2(i, j). For j =1 To 5 a2(i, j) = Int(Rnd(i*j)*100) Next j Next i For i = 1 To 3 ‘Вывод массива a2(i, j) на рабочий лист. For j = 1 To 5 Cells(i + 1, j + 1) = a2(i, j) Next j Next i End Sub Sub Dmas2() Dim a(1 to 5) As Integer, k As Integer Dim i As Integer, prom As Variant WorkSheets(“Лист1”).Select Cells.Clear K = 2 For i =1 To 5 ‘Ввод элементов массива с клавиатуры. Do Prom = InputBox(“Введите элемент a(“& CInt(i) & “) =”) If Not IsNumeric(prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric(prom) A(i) = prom Next i For i =1 To 5 ‘Вывод массива a(i) на рабочий лист. Cells(k,2) = “a(“& CInt(i) & “) = ” Cells(k,3) = a(i) k = k + 1 Next i End Sub
9.4/3.8.2. Динамические массивы
Динамическим называется массив, размерность которого определяется в ходе выполнения программы. Синтаксис описания массива: Dim <Имя массива>() As <Тип> Размерность массива устанавливается и изменяется с помощью оператора:ReDim <Имя массива>(<размерность>) Для установки и изменения размерности массива без потери его содержимого применяется оператор: ReDim Preserve<Имя массива>(<размерность>) Для определения параметров динамического массива используются функции: LBound(<Имя>[,<Размерность>]) ‘Возвращает нижнюю границу указанной размерности массива, которую следует задавать равной 1. UBound(<Имя>[,<Размерность>]) ‘Возвращает верхнюю границу указанной размерности массива, которую следует задавать равной 2. Если размерность не указана, то подразумевается значение, равное 1. Пример: Sub Mas4() Dim a() As Integer Dim i As Integer, k As Integer, j As Integer, n Integer Dim prom As Variant WorkSheets(“Лист1”).Select Cells.Clear k = 2 i = 0 Do Prom =InputBox(“Введите количество элементов N =) If Not IsNumeric(prom) Then MsgBox(“Повторите ввод!”) Loop Until IsNumeric(prom) N = prom ReDim a(1 to n) As Integer ‘Устанавливается фактическая размерность массива a(i). Do‘Формирование массива a(i). ReDim Preserve a(1 to n) As Integer ‘Это другой вариант установки размерности массива с сохранением значений его элементов. a(i) = Int(Rnd(i)*100) i = i + 1 Loop Until i = N For j =1 To i ‘Вывод массива a(j) на рабочий лист. Cells(k,j + 1) = a(j) Next j End Sub Array(<Список аргументов>) ‘Создает массив типа Variant. Список аргументов представляет разделенный запятыми список значений, присваиваемых элементам массива. Пример: Dim День As Variant День = Array(“Пн”, “Вт”, “Ср”, “Чт”, “Пт”, “Сб”) IsArray(<Имя переменной>) ‘Функция используется для проверки значений переменных типа Variant, содержащих массивы. Возвращает True, если переменная содержит массив, и False, если переменная не содержит массив (не является массивом). Erase(<Список массивов>) 'Эта инструкция повторно инициализирует элементы статических массивов и освобождает память, отведенную для динамических массивов. Список массивов представляет имена очищаемых массивов, разделенных запятой. В статических массивах их элементам вместо чисел или строк фиксированной длины присваиваются значения, равные 0, а для строк переменной длины присваивается значение пустой строки. В массивах типа Variant каждому элементу присваивается значение Empty. Вопросы для самоконтроля 1. Варианты описания статических массивов. 2. Как установить начальную границу размерности статического массива, равную 1, если при описании массива начальная граница задается равной 0? 3. Какое предельное количество измерений многомерного статического массива? 4. В каких случаях возникает потребность в применении динамического массива? 5. Как установить или изменить размерность динамического массива? 6. Как изменить размерность динамического массива без потери имеющихся значений его элементов?
Основные объекты VBA
К числу основных объектов VBA, которые описываются в этом разделе, относятся: рабочая книга (Workbook) и семейство рабочих книг (Workbooks), рабочий лист (Worksheet) и семейство рабочих листов (Worksheets), диапазон ячеек или ячейка (Range). После объекта, обычно через точку “. ”, указывается свойство или метод. Иногда, чтобы добраться до определенного объекта, нужно пройти иерархию вышестоящих объектов. Пример:
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 964; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.140.100 (0.007 с.) |