Сапа
Здесь может быть ваша реклама
|

 Глава 2. Основные объекты VBA

Глава 2. Основные объекты VBA

Объект Application

Объект Application (приложение) является главным в иерархии объектов Excel и представляет само приложение Excel. Он имеет более 120 свойств и 40 методов. Эти свойства и методы предназначены для установки общих параметров приложения Excel. Кроме того, объект Application позволяет вызывать более 400 встроенных функций рабочего листа при помощи конструкции вида:

Application.ФункцияРабочегоЛиста(Аргументы)

Например:

    
 

Application . Pi ( )

Вычисление числа п

 
 

Application. Pmt (Аргументы)

Определение постоянных периодических платежей при постоянной процентной ставке с помощью функции ППЛАТ (РМТ)

 
 

Application . Sum (Аргументы)

Нахождение суммы значений из ячеек диапазона

 
    

Приведем несколько наиболее часто используемых свойств, методов и событий объекта Application.

Свойства объекта Application

    
 

Свойства

Выполняемые действия и допустимые значения

 
 

ActiveWorkbook,

ActiveSheet

ActiveCell

Возвращают активный объект: рабочую книгу, лист, ячейку, диаграмму, диалоговое окно. Свойство ActiveCell содержится В ActiveSheet, а свойства ActiveSheet, ActiveChart И ActiveDialog в ActiveWorkbook.

 
    
    
 

Свойства

Выполняемые действия и допустимые значения

 
 

ActiveChart

В следующем примере в активной ячейке устанавливается по-

 
 

ActiveDialog

лужирный шрифт и в нее вводится строка текста Отчет за май: With ActiveCell .Font. Bold = True .Value = "Отчет за май" End With

 
 

ThisWorkbook

Возвращает рабочую книгу, содержащую выполняющийся в данный момент макрос. Это свойство может возвращать рабочую книгу, отличную от возвращаемой свойством Active-Workbook, т. к. выполняемый макрос может находиться в неактивной книге

 
 

Calculation

Устанавливает режим вычислений. Допустимые значения: xlCalculationAutomatic (автоматический режим) xlCalculationManual (вычисления выполняются вручную)

xlCalculationSemiAutomatic (автоматический режим, не распространяется на таблицы)

 
 

Caption

Возвращает текст в строке имени главного окна Excel. Установка свойства равным Empty возвращает заголовок, используемый по умолчанию. В следующем примере первая инструкция устанавливает в качестве заголовка окна приложения текст Отчет за 1999 год, а вторая возвращает имя окна, используемое по умолчанию, т. е. Microsoft Excel:

Application. Caption = "Отчет за 1999 год" Application. Caption = Empty

 
 

DisplayAlerts

Допустимые значения: True (отображаются встроенные предупреждения о работе программы) и False (предупреждения не отображаются)

 
 

DisplayFormulaBar

Допустимые значения: True (строка формул выводится в окне Excel) и False (строка формул не выводится).

В данном ниже примере установлен режим, при котором строка формул не будет выводиться в окне Excel:

Application. DisplayFormulaBar = False

 
 

DisplayScrollBars

Допустимые значения: True (полосы прокрутки видны в окне Excel) и False (полосы прокрутки не отображаются). Например: Application. DisplayScrollBars = False — строка формул не будет выводиться в окне Excel

 
    
    
 

Свойства

Выполняемые действия и допустимые значения

 
 

DisplayStatusBar

Допустимые значения: True (строка состояния видна в окне Excel) и False (строка состояния не видна). Например:

Application. DisplayStatusBar = True — строка состояния не будет выводиться в окне Excel

 
 

EnableCancelKey

Определяет действие при нажатии комбинации клавиш <Ctrl>+<Break>, используемой для прерывания выполнения процедуры. Допустимые значения:

xlDisabled (прерывания программы запрещено) xllnterrupt (прерывание процедуры разрешено) XlErrorHandler (прерывание воспринимается как ошибка)

 
 

Height

Высота окна приложения в пунктах

 
 

Width

Ширина окна приложения в пунктах

 
 

Left

Расстояние в пунктах от левой границы окна приложения до левого края экрана

 
 

Right

Расстояние в пунктах от правой границы окна приложения до правого края экрана

 
 

Top

Расстояние в пунктах от верхней границы окна приложения до верхнего края экрана

 
 

ScreenUpdating

Допустимые значения: True (изображение обновляется во время выполнения программы) и False (изображение не обновляется). Задание False в качестве значения свойства ускоряет выполнение процедуры. В конце процедуры свойству

ScreenUpdating необходимо присвоить значение True

 
 

StatusBar

Выводит заданный текст в строке состояния. Выполнение приведенного ниже примера позволит вывести текст Ввод данных. . . в строке состояния:

Application. DisplayStatusBar = True Application. StatusBar = "Ввод данных..."

 
 

Version

Возвращает номер текущей версии Excel. Применяется для проверки того, что приложение используется в корректной версии. Например:

If Application. Version о "8.0" Then Exit Sub

 
 

WindowState

Устанавливает размер окна. Допустимые значения: xlMaximized (максимальный) xlMinimized (минимальный) xlNormal (нормальный) Например: Application. WindowState = xlMaximized — устанавливается максимальный размер окна

 
    

 

Методы объекта Application

    
 

Методы

Выполняемые действия

 
 

Calculate

 

Run

 

 

 

 

 

 

Volatile

 

 

 

Wait

 

 

 

 

 

 

 

OnKey

Вызывает принудительное вычисление во всех открытых рабочих книгах. Например:

Application. Calculate

Запускает на выполнение подпрограмму или макрос. Синтаксис:

Run (Macro, Argl, Arg2, ...)

  • Macro — строка с именем макроса
  • Arg1, Arg2, ... — аргументы передаваемые макррсу Например:

Application. Run Macro:= "Расчет"

- запускает макрос Расчет

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

Function Квадрат (х) Application .

Volatile Квадрат = х^2 End Function

Временно приостанавливает работу приложения без остановки работы других программ.

Синтаксис:

Wait (Time)

  • Time — время, в которое предполагается возобновить работу приложения

В следующем примере показывается, как установить время, чтобы возобновление работы приложения началось в 17 часов:

Application. Wait "17:00:00"

Устанавливает выполнение специфицированной процедуры при нажатии заданной комбинации клавиш.

Синтаксис:

OnKey(Key, Procedure)

  • Procedure — имя выполняемой подпрограммы при нажатии клавиш
  • Key — строка, определяющая комбинацию клавиш, которая должна быть нажата. В этой строке можно также указывать специальные клавиши, используя следующие коды:
 
    
    
 

Методы

Выполняемые действия

 
 

OnRepeat и OnUndo

  • <Backspace> — {BACKSPACE} или (BS)
  • <Break> — {BREAK}
  • <Caps Lock> — {CAPSLOCK}
  • <Delete> или <Del> — {DELETE} или {DEL}
  • <вниз>— {DOWN}
  • <End> — {END}
  • <Enter> (цифровая клавиатура) — {ENTER}
  • <ESC> — {ESCAPE}или {ESC}
  • <Home> — {HOME}
  • <lns>или <lnsert>— {INSERT}
  • <<-> — {LEFT}
  • <Num Lock> — {NUMLOCK}
  • <Page Down> — {PGDN}
  • <Page Up> — {PGUP}
  • <Return> — {RETURN}
  • <->> — {RIGHT}
  • <Scroll Lock> — {SCROLLLOCK}
  • <Tab>- {TAB}
  • <вверх>- {UP}
  • ОТ <F1> до<F15> — ОТ {F1}до{F15}

Допустимо использование сочетания одновременно нажатых клавиш. С этой целью для перечисленных трех клавиш установлены следующие коды:

  • <Shift> - +
  • <Ctrl> ^
  • <Alt>-%

В примере процедуре Амортизация назначена комбинация клавиш <Ctrl>+<+>, а процедуре ПроцентнаяСтавка — <Shift>+<Ctrl>+<->.>:

Application. OnKey "^{+}", "Амортизация"

Application. ОпКеу "+^ {RIGHT}", "ПроцентнаяСтавка"

Определяет процедуру, выполняемую при выборе команды Правка, Повторить (Edit, Repeat) и Правка, Отменить (Edit, Undo) соответственно.

 
    
    
 

Методы

Выполняемые действия

 
 

 

 

 

 

 

 

OnTime

 

 

 

 

 

 

 

 

 

 

Quit

Синтаксис:

OnRepeat (Text, Procedure)

OnUndo (Text, Procedure)

  • Text — строка, задающая текст команды Правка, Повторить (Edit, Repeat)

Procedure — имя подпрограммы, выполняемой при выборе команды Правка, Повторить (Edit, Repeat)

Назначает выполнение процедуры на определенное время. Синтаксис:

OnTime (EarliestTime, Procedure, LatestTime, Schedule)

  • EarliestTime — момент запуска процедуры
  • Procedure — имя процедуры
  • batestTime — если на момент запуска процедуры, Excel не может ее запустить в силу того, что выполняется другое действие, то параметр LatestTime определяет последнее время ее запуска. Если этот аргумент опущен, то Excel будет ждать до тех пор, пока не сможет выполнить эту процедуру
  • Schedule — допустимые значения: True (выполнение процедуры откладывается на сутки) и False (во всех остальных случаях)

В следующем примере демонстрируется, как запустить процедуру Очистка на выполнение через 15 секунд от текущего времени:

Application. OnTime Now +_ TimeValue ("00:00:15"), "Очистка" Закрывает приложение.

Например:

Application. Quit

 
    

 

События объекта Application

СобытиеКогда возникает событие
NewWorkbook При создании новой рабочей книги
WorkbookActivate При активизации рабочей книги
WorkbookBeforeClose Перед закрытием рабочей книги
WorkbookBeforePrint Перед печатью рабочей книги
WorkbookBeforeSaveПеред сохранением рабочей книги
WorkbookNewSheet При добавлении нового листа в рабочую книгу
WorkbookOpenПри открытии рабочей книги
WorkbookDeactivateКогда активная книга теряет фокус

Объект Workbook и семейство Workbooks

В иерархии Excel объект workbook (рабочая книга) идет сразу после объекта Application и представляет файл рабочей книги. Рабочая книга хранится либо в файлах формата XLS (стандартная рабочая книга) или XLA (полностью откомпилированное приложение). Свойства и методы рабочей книги позволяют работать с файлами.

Свойства объекта Workbook и семейства Workbooks

    
 

Свойства

Выполняемые действия и допустимые значения

 
 

ActiveSheet

Возвращает активный лист книги. Например:

MsgBox "Имя активного листа " & ActiveSheet . Name — выводит в диалоговом окне имя активного рабочего листа

 
 

ActiveDialog

Возвращает активное диалоговое окно

 
 

ActiveChart

Возвращает активную диаграмму

 
 

Sheets

Возвращает семейство всех листов книги

 
 

Worksheets

Возвращает семейство всех рабочих листов книги

 
 

Charts

Возвращает семейство всех диаграмм книги (которые не внедрены в рабочие листы)

 
 

Count

Возвращает число объектов семейства workbooks

 
 

HasPassword

Допустимые значения: True (если у документа имеется пароль защиты), False (в противном случае)

 
 WriteRe servedДопустимые значения: True (если документ закрыт для записи), False (в противном случае) 
 

Saved

Допустимые значения: True (если не производились изменения в документе со времени его последнего сохранения), False (в противном случае)

 
 

MailSystem

Возвращает имя инсталлированных на компьютере средств работы с электронной почтой. Допустимые значения:

  • xlNoMailSystem (не установлена система электронной почты)
  • xlMAPi (установлена система Microsoft Mail)
  • xlPowerTalk (установлена система Apple PowerTalk Mail, на компьютерах Macintosh).

В следующем примере проверяется, инсталлирована ли электронная почта. Если электронная почта не установлена, то отображается соответствующее сообщение:

If Application. MailSystem <> xlMAPI Then

MsgBox "Microsoft Mail неинсталлирован"

End If

 
    

 

Методы объекта Workbook и семейства Workbooks

    
 

Методы

Выполняемые действия

 
 Activate

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

Например:

Workbook. Activate

 

 
 AddСоздает новый объект для семейства Workbooks.

Синтаксис:

Add (Template)

  • Template — задает шаблон, на основе которого создается новая рабочая книга. Допустимые значения: xlWBATChart, xlWBATExce14IntlMacroSheet, xlWBATExce14MacroSheet или xlWBATWorksheet.

Если аргумент Template опущен, то создается новая рабочая книга с количеством листов, заданных свойством

SheetsInNewWorkbook

 
 Protect

Защищает рабочую книгу от внесения в нее изменений. Синтаксис:

Protect (Password, Structure, Windows)

  • Password — строка, используемая в качестве пароля для защиты книги
  • Structure — допустимые значения True (защищена структура книги, т. е. взаимное расположение листов) и False (не защищена)
  • windows — допустимые значения True (защищено окно книги) и False (не защищено)

В следующем примере устанавливается защита для активной рабочей книги:

ActiveWorkbook. Protect Password:= "ВинниПух"

 
 

Unprotect

Снятие защиты с рабочей книги.

Синтаксис:

Unprotect (Password)

  • Password — строка, используемая в качестве пароля для защиты листа

В следующем примере снимается защита с активной рабочей книги:

ActiveWorkbook. Unprotect Password := "ВинниПух "

 
 

Close

Закрытие рабочей книги

 
 

Open

Открытие существующей рабочей книги

 
 

OpenText

Открытие текстового файла, содержащего таблицу данных

 
 

Save

Сохранение рабочей книги

 
 

SaveAs

Сохранение рабочей книги в другом файле.

Синтаксис:

SaveAs (Filename)

  • Filename — строка, указывающая имя файла, в котором будет сохранена рабочая книга

В следующем примере активная рабочая книга сохраняется в файле с именем НоваяВерсия:

ActiveBook. SaveAs Filename := "НоваяВерсия"

 
 

SaveAsCopy

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

Синтаксис:

SaveAs (Filename, FileFormat)

  • Filename — строка, указывающая имя файла, в котором будет сохранена рабочая книга

В следующем примере активная рабочая книга сохраняется в файле с именем ЗапаснаяВерсия:

ActiveBook. SaveAsCopy Filename := "ЗапаснаяВерсия"

 
 

PrintPreview

Предварительный просмотр

 
 

Printout

Печать содержимого рабочей книги

 
 

SendMail

Отсылка почты используя встроенные средства Microsoft Mail (MAPI).

Синтаксис:

SendMail (Recipients, Subject, ReturnReceipt )

  • Recipients — строка или массив строк, перечисляющих получателей
  • Subject — строка, специфицирующая тему сообщения
    Optional Variant.
  • ReturnReceipt — допустимые значения True (требуется уведомление о получении сообщения) и False (в противном случае)

В следующем примере рабочая книга отсылается по электронной почте получателю Порфирию Заковыркину:

ThisWorkbook . SendMail recipients : = " Порфирий Заковыркин"

 
    

 

События объекта Workbook и семейства Workbooks

СобытиеКогда возникает событие
BeforeCloseПри закрытии рабочей книги
BeforePrint Перед печатью рабочей книги
BeforeSave Перед сохранением рабочей книги
DeactivateКогда рабочая книга теряет фокус
NewSheetПри добавлении нового листа
OpenПри открытии рабочей книги
SheetActivateПри активизации любого рабочего листа
Sheet DeactivateКогда рабочий лист теряет фокус

 

Объект Worksheet и семейство Worksheets

В иерархии Excel объект worksheet идет сразу после объекта workbook и представляет рабочий лист.

Приведем несколько наиболее часто используемых свойств и методов объекта Worksheet.

Свойства объекта Worksheet и семейства Worksheets

    
 

Методы

Выполняемые действия

 
 Name

Возвращает имя рабочего листа. В следующем примере первому листу активной рабочей книги присваивается имя Итоги

за декабрь :

Worksheets (1) . Visible = "Итоги за декабрь"

 
 

Add

Создает новый рабочий лист.

Синтаксис:

Add (Before, After, Count, Type)

  • Before — указывает лист, перед которым будет размещен новый рабочий лист
  • After — указывает лист, после которого будет размещен новый рабочий. Если аргументы Before и After опущены, то новый лист размещается перед активным листом
  • Count — число добавляемых листов, по умолчанию имеет значение 1
  • Туре — указывает тип добавляемого листа. Допустимые значения: xlWorksheet (по умолчанию),

xlExce14MacroSheet и хlЕхсеl4 IntlMacroSheet.

Например:

ActiveWorkbook . Worksheets . Add

— вставляется новый лист перед активным листом активной рабочей книги

 
 

Delete

Удаляет рабочий лист. Например:

Worksheets (1) . De ete - удаляется первый рабочий лист из активной рабочей книги

 
 


Защищает рабочий лист от внесения в него изменений Синтаксис:

Protect (Password, DrawingObjects, Contents, Scenarios, User Inter faceOnly)

  • Password — строка, используемая в качестве пароля для защиты листа
  • DrawingObjects —допустимые значения: True (графические объекты защищены) и False (графические объекты не защищены). По умолчанию используется значение False
  • Contents — допустимые значения: True (ячейки защищены) и False (ячейки не защищены). По умолчанию используется значение True
  • scenarios —допустимые значения: True (сценарии защищены) и False (сценарии не защищены). По умолчанию используется значение True
 
    
    
 


  • Userlnterf aceOnly — допустимые значения: True (лист защищен от изменений со стороны пользователя, но не подпрограммы VBA) и False (лист защищен от изменений со стороны как пользователя, так и подпрограммы VBA). По умолчанию используется значение False

В следующем примере установлена

 
MKPortal©2003-2008 mkportal.it
MultiBoard ©2007-2009 RusMKPortal