Управляющие конструкции в языке VBA. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управляющие конструкции в языке VBA.



Программа VBA как набор конструкций, условный оператор, оператор циклов, оператор для работы с объектами и коллекциями.

 

Условный оператор позволяет осуществлять выбор действий, которые надо выполнить, в зависимости от некоторого условия.

Циклы позволяют многократно выполнять некоторую последователь­ность действий, используя логические выражения для определения момента прекращения выполнения цикла.

           Do [{ While | Until } <условие>]           Do

<инструкции>                                   <инструкции>

[ Exit Do ]                                      [ Exit Do ]

<инструкции>                                   <инструкции>

Loop                                              Loop [{ While | Until } <условие>]

Однако наиболее часто используемым является параметрический цикл

           Работа с объектами и коллекциями

Конструкция With – End With позволяет выполнить несколько операций над одним объектом.

With <объект>

<инструкции>

End With

 

With Selection.Font

.Bold = True

.Italic = True

.Size = 14

.Name = Cambria

End With

 

Selection.Font.Bold = True

Selection.Font.Italic = True

Selection.Font.Size = 14

Selection.Font.Name = Cambria

 

Конструкция For Each – Next позволяет обработать все элементы какой-либо коллекции.

For Each <элемент> In <коллекция>

<инструкции>

[ Exit For ]

<инструкции>

Next <элемент>

 

'Вывод имён всех рабочих листов в активной рабочей книге

Dim item As Worksheet

For Each item In ActiveWorkbook.Worksheets

MsgBox item.Name

Next item

 

 

   

Вопрос 12.

Процедуры, функции и макросы. Параметры подпрограмм в языке VBA.

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

 

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

Подпрограммы делятся на процедуры и функции.

Процедура – это подпрограмма, которая выполняет некоторые действия, но не возвращает никакого значения. Как было сказано, процедура – это подпрограмма, которая выполняет некоторые действия, но не возвращает никакого значения.

Функция – это подпрограмма, которая возвращает значение.

В офисных пакетах используется также термин «макрос». Макрос – это процедура, записанная с помощью специального средства, встроенного в офисное приложение.

           Существуют две точки, где используется список параметров подпрограммы – заголовок процедуры или функции и вызов процедуры или функции. Параметры, записанные в заголовке, называются формальными, а параметры, записанные в вызове, – фактическими.

Список фактических параметров должен соответствовать списку формальных параметров по следующим критериям.

1. По количеству.

2. По типу.

3. По порядку следования

 

Необязательные параметры

Язык VBA позволяет объявлять параметр как необязательный, а также задавать так называемые значения по умолчанию.

Для указания того, что параметр является необязательным, используется ключевое слово Optional, которое ставится перед именем параметра.

Для задания значения по умолчанию после описания формального параметра ставится знак равенства и значение, которое подставляется в подпрограмму, в случае отсутствия в вызове соответствующего фактического параметра.

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

Public Function RangePart(r As Range, Optional row As Integer = 0, Optional column As Integer = 0) As Variant

If row = 0 And column = 0 Then

RangePart = r

ElseIf row = 0 Then

RangePart = r.Columns(column)

ElseIf column = 0 Then

RangePart = r.Rows(row)

Else

RangePart = r.Cells(row, column)

End If

End Function

 

'Функция возвращает весь диапазон, переданный в качестве первого параметра

r = RangePart(Worksheets(5).Range("A1:C4"))

'Функция возвращает одну ячейку, находящуюся в 1 строке 3 столбце

r = RangePart(Worksheets(5).Range("A1:C4"), 1, 3)

'Функция возвращает одну строку

r = RangePart(Worksheets(5).Range("A1:C4"), 5)

'Функция возвращает один столбец

r = RangePart(Worksheets(5).Range("A1:C4"),, 4)

r = RangePart(Worksheets(5).Range("A1:C4"), column:=4)

 



Поделиться:


Последнее изменение этой страницы: 2019-08-19; просмотров: 184; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.250.1 (0.005 с.)