Application. Workbooks (“ Отчет ”). Worksheets (“ Май ”). Rows (2). Delete
Определение имени приложения: Application. Name Если вспомнить, что строка содержит отдельные ячейки, свойства которых тоже можно устанавливать, то выражение становится ещё длиннее: Application. Workbooks (“ Отчет ”). Sheets (“ Май ”). Rows (2). Cells (1). Value = “Да” Таким образом ссылки на объекты могут быть слишком громоздкими. Если данный объект часто используется в программе, то разумно создать объектную переменную с помощью команды Set. Например, предыдущий пример можно записать в следующем виде: Dim R As Object Set R = Application. Workbooks (“ Отчет ”). Sheets (“ Май ”). Rows (2). Cells (1) R.Value = “ Да ” Приводимые выше примеры можно записать гораздо короче: · Можно не писать имя объекта Application, т. к. это подразумевается по умолчанию; · При работе с подобъектом уже активизированного объекта нет необходимости указывать содержащий его объект; · VBA использует некоторые свойства и методы, которые возвращают объект, к которому они относятся. Использование последнего обстоятельства позволяет быстро указывать нужный объект. Так, в следующем примере устанавливается значение активной ячейки ActiveCells . Value = “Да” ActiveCells (активная ячейка), ActiveSheet(Активный лист), (активная рабочая книга) и Selection (выбор – указывает на выбранный объект) являются примерами свойств, возвращающих объект. Типы данных. Переменные и типы данных определяют, где и как данные хранятся в памяти компьютера. В языке со строгим контролем типов вы обязаны указывать тип каждой переменной перед ее использованием. Хотя Visual Basic не является языком со строгим контролем типов, он предоставляет возможность управлять использование памяти вашего компьютера более эффективно, задавая в явном виде типы всех ваших переменных. Определяя тип данных для величины, тем самым определяется соотношение между разрядностью, размером и используемой памятью. Встроенные типы данных.
В Visual Basic имеется одиннадцать встроенных типов данных, представленных в таблице 5:
Таблица 5. Встроенные типы данных.
Тип данных Variant используется в Visual Basic как тип данных по умолчанию, т.е. если тип данных для хранения величины не указан, то используется тип данных Variant. Variant имеет возможность хранить практически любую величину и бывает полезен для коротких, простых программ. Переменные и их объявления.
Переменные - это поименованные области в памяти компьютера. После вычисления какого-либо значения его нужно записать в память, чтобы затем можно было к нему обращаться. Использование переменных дает Visual Basic возможность создавать прямое соответствие между областью памяти и заданным именем. Объявляя переменную определенного типа, указывается, какой тип данных должен быть использован при записи значения переменной в память. Для объявления переменных служит оператор Dim, который включается в верхнюю часть процедуры, использующей эти переменные. Синтаксис оператора Dim: Dim <имя переменной>As<тип данных>,<имя переменной>As<тип данных>, ... Примеры объявления переменных: Dim ProductNumber As Long, Product_Name As String Dim I As Long, aPicture При объявлении переменной задается единичная поименованная область памяти, а при объявлении массива - список смежных областей памяти под одним именем. Для осуществления доступа к отдельному элементу массива, имя массива снабжают номером элемента массива (индексом), заключенным в круглые скобки. Примеры объявления массивов: Dim Sales (4 to 8) As Currency Dim theCoords (3, 1 to 4) As Single Чтобы сделать переменную доступной всем процедурам во всех модулях, она объявляется на уровне модуля, использовав вместо Dim ключевое слово Public. Объектные переменные объявляются так же, как и любые другие. Чтобы присвоить значение объектной переменной используется следующая конструкция: ключевое слово Set , имя переменной, знак равенства и формула, определяющая значение объекта. Например, приведенная ниже процедура создает объектную переменную, присваивает ей объект Rang, ссылающийся на ячейку В5, и затем использует эту объектную переменную для присваивания значения ячейке: Sub ObjVar () Dim Х As Object Set Х = ActivSheet.Range (“B5”) ( Или Set Х = Range (“B1:B10)”) X.Value = 10 End Sub Основные математические действия производятся с помощью операций. В таблицах 6,7,8 представлены все математические и строковые операции в порядке убывания приоритета. Для обеспечения корректности вычисления операций в сложных формулах используют круглые скобки.
Таблица 6. Основные операции VBA.
Рассмотренные выше операции дают возможность осуществлять основные математические действия, более сложные вычисления производятся с помощью встроенных функций. Visual Basic оперирует этими функциями подобно Excel, с тем отличием , что они всегда возвращают единичное значение. Функции Excel могут применяться к целым массивам чисел и возвращать массивы в качестве результатов. Чтобы обработать массив значений с помощью функции Visual Basic, нужно применить эту функцию к каждому элементу массива в отдельности.
Таблица 7. Математические функции VBA.
Математические функции, приведенные в таблице, обычно требуют в качестве аргумента единичное значение, некоторым образом его трансформируют и возвращают также одно число. Тригонометрические функции Sin ( ), Cos ( ), Tan ( ) применяются к углам в радианах и преобразовывают их в соответствующую тригонометрическую величину.
Таблица 8. Строковые функции VBA.
Операторы. Оператор присваивания - это основа всех вычислений в VBA, так как любая рассчитанная величина должна стать переменной, чтобы ее можно было хранить. Знак «=» является оператором присваивания, который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. В правой части располагается выражение в виде формулы, в качестве которой может выступать отдельная величина или выражение, состоящее из переменных, констант, операций и функций. Переменная, располагающаяся слева, может быть простой переменной, элементом массива или свойством объекта. Примеры операторов присваивания: Filename = "c:\vba\exampl.xls" Sales = Units * Prise ActiveWindow . ScrollRow = 1 Таким способом нельзя присвоить значения только объектам - они требуют специального оператора присваивания. Например, приведенная ниже процедура создает объектную переменную, присваивает ей объект Rang, ссылающийся на ячейку В5, и затем использует эту объектную переменную для присваивания значений ячейке: Sub ObjVar () Dim theRang as Object Set theRang = ActiveSheet.Range(‘B5’) theRang.Value = 10 EndSub Исключением является оператор присваивания « : = ». В отличие от ранее описанного оператора присваивания «=», он применяется только по отношению к параметрам процедуры. Sub Assistant (a, b) c = a + b Msgbox Cstr (c) End Sub Sub Main( ) Assistant a:= 1, b:= 3 End Sub В данном примере при вызове процедуры Assistant передача параметров осуществляется присвоением значений именам параметров с помощью оператора присваивания «:=». При выполнении данной процедуры переменной c присваивается значение суммы переданных параметров с использованием оператора присваивания «=». Операторы условного перехода If - Then и If-Then-Else.
Условный оператор If-Then-else обеспечивает передачу управления в программе в зависимости от выполнения условия. Синтаксис: If <условие> Then <блок_операторов_1> Else <блок_операторов_2> End If В условном операторе допустимо использование как блока операторов, так и любого из операторов. В операторе условия Оператор_1 или Блок_операторов_1 выполняется, если <условие> истинно, в противном случае выполняется Оператор_2 или Блок_операторов_2. Условие - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения (таблица 9):
Таблица 9. Логические отношения VBA.
Сложные условия образуются из простых путем применения логических операций и круглых скобок. Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия: If <условие> Then <оператор или блок_операторов> End If Заметим, что в операторе условия после Then можно разместить блок операторов, для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием. Например, If A>10 Then A=A+1 : B =B+A : C=C+B End If Заметим, что знак подчеркивания «_» в конце строки обозначает, что следующая строка является продолжением предыдущей. В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид: If <условие_1> Then <Блок_операторов_1> Else If <условие_2> Then <блок_операторов_2> Else If <условие_3> Then ... else <блок_операторов> End If В данном условном операторе выполняется блок_операторов_i, если истинно условие_i, в противном случае выполняется блок_операторов. Оператор выбора Select Case удобно использовать, когда одна величина участвует во многих сравнениях для выбора одного из блоков кода. Наиболее часто используется, когда сравниваемая величина является целым числом - селектором или индексом. Значение селектора или индекса выбирает тот блок кода, который будет выполняться. Синтаксис: Select Case <тестируемое _выражение> Case <условие_выбора_1> <блок_операторов_1> ... ... ... Case <условие_выбора_n> <блок_операторов_n> Case Else <блок_операторов_n> End Select После каждого оператора Case может находиться произвольное количество других операторов, и все они будут выполняться, если условие оператора Case истинно. При использовании одного оператора его можно поместить а одну строку с операторами Case. Так же как и в блочной структуре IF, можно использовать специальный оператор Case, определяющий любые величины, которые не совпадают ни с одним из других операторов Case. Для этого условие Case Else включается последним блоком перед оператором End Select. Все величины, не совпавшие ни с одним оператором Case, совпадут с оператором Case Else. Is является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case. В операторе Case допустимы составные условия, например Case 4,7 to 8, Is >=16 Проверяет, принадлежит ли тестируемое выражение отрезку от 7 до 8 или равняется значению 4, или оно не меньше, чем 16. Пример перевода числового значения дня недели в строковое представление. Sub perevod() x = Sheets(" Лист 1").Range("e30").Value Select Case x Case 1 Sheets(" Лист 1").Range("e31").Value = " Понедельник " Case 2 Sheets(" Лист 1").Range("e31").Value = " Вторник " Case 3 Sheets(" Лист 1").Range("e31").Value = " Среда " Case 4 Sheets(" Лист 1").Range("e31").Value = " Четверг " Case 5 Sheets(" Лист 1").Range("e31").Value = " Пятница " Case 6 Sheets(" Лист 1").Range("e31").Value = " Суббота " Case 7 Sheets(" Лист 1").Range("e31").Value = " Воскресенье " Case Else is<=0, is>7 Sheets("Лист1").Range("e31").Value = "Не день недели" End Select End Sub Циклы.
Для сокращения размера кода, который необходимо написать для решения задачи используют повторяемые структуры известные под общим названием как циклы. Циклы бывают трёх типов: 1. Вычисляемые Логически прерываемые 3. Объектного типа Вычисляемый цикл предназначен для повторения одного блока кода заданное количество раз. Вычисляемые циклы применяются в тех случаях, когда заранее известно, сколько раз нужно выполнить блок кода. Например, если требуется форматировать десять последовательных ячеек таблицы, то можно применить вычисляемый цикл, позволяющий поочерёдно изменить формат каждой из ячеек. Рассмотрим два вычисляемых цикла: For .. Next и For Each .. Next. Вычисляемые циклы разделяются Visual Basic с помощью циклической структуры For-Next и For Each-Next. Цикл For… Next For переменная_цикла = начало To конец Step шаг . блок кода Exit For блок кода Next переменная _цикла В данном случае переменная_цикла является именем переменной, которая считает количество шагов цикла. Переменные начало и конец определяют начальное и конечное значение переменная_цикла, а шаг – величину наращивания переменная_цикла после каждого выполнения цикла. Когда в программе встречается цикл For-Next, переменная_цикла получает значение начало, затем выполняется блок кода вплоть до оператора Next. Далее переменная_цикла увеличивается на величину шаг и сравнивается со значением конец. Если значение переменная_цикла больше, чем значение конец, то цикл прерывается и управление переходит к оператору, следующему за оператором Next. Если значение переменная_цикла меньше или равно значению конец, то блок кода цикла выполняется ещё раз. Так продолжается до тех пор, пока значение переменная_цикла не станет больше значения конец. Когда встречается оператор Exit For, цикл немедленно прерывается и управление переходит к оператору, следующему за оператором Next. Обычно оператор Exit For применяется для прекращения процесса поиска чего-нибудь, когда вы искали это циклически и нашли. Если зарезервированное слово Step и величина шаг опущены, то величина переменная_цикла наращивается на 1 после каждого шага цикла. Если величина конец меньше величины начало и величина шаг отрицательна, цикл считается по убывающей, а не по возрастающей. Счётчик цикла - это обычная переменная, доступная в любом месте цикла и используемая в блоке его кода для выбора различных величин или ячеек. Счётчиком цикла обычно является целое число, используемое в качестве индекса массива переменных или в качестве аргумента метода Cells для выбора ячейки таблицы. После завершения цикла значение счётчика больше значения конец (или меньше значения конец, если цикл считался по убывающей). Этот фактор удобно использовать, чтобы определить, завершился ли цикл нормально или был преждевременно прерван оператором Exit For.
Цикл For Each…Next Данный вид цикла называется объектным и предназначен для обработки элементов в выделенном наборе. Циклы объектного типа реализуются структурой For Each...Next. Процесс выполнения данного цикла аналогичен циклу For…Next. Однако, в качестве переменной цикла используется не счётчик, определяющий количество повторов, а объект из выделенного набора. В качестве набора может быть использована как область ячеек, так и массив. For Each < элемент > in < набор > <Тело цикла> Next <элемент>, где <элемент> и <набор> являются переменными типа Variant. В этом синтаксисе элемент представляет собой переменную типа Variant, что обеспечивает возможность содержать объект. Переменная набор является некоторым набором объектов. В процессе выполнения цикла объект выбирается из набора и помещается в переменную элемент, и это позволяет использовать переменную элемент в блоке кода цикла для осуществления необходимых действий с объектом. Аналогично циклу For...Next оператор Exit For прерывает цикл до его окончания. Цикл Do - Loop является наиболее универсальным из логически прерываемых циклов. существуют четыре конфигурации этого цикла: условие True в начале, условие True в конце, условие False в начале и условие False в конце. Ниже приведен синтаксис всех четырех конфигураций: ’ Условие True в начале. ’ Условие False в начале.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (244)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |