цКЮБЮ 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) . Delete - удаляется первый рабочий лист из активной рабочей книги


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

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

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

Active Sheet .Protect

Password: =" Секрет" ,

DrawingObjects :=True,

Contents :=True, Scenarios : =True

Unprotect

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

Синтаксис:

Unprotect (Password)

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

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

ActiveSheet . Protect Password: ="Секрет"

Copy

Копирование рабочего листа в другое место рабочей книги.

Синтаксис:

Copy (Before, . After)

  • Before ≈ рабочий лист книги, перед которым вставляется данный
  • After ≈ рабочий лист, после которого вставляется данный

Одновременно допустимо использование только одного из аргументов.

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

Worksheets ( "Лист1") .Сору after :=Worksheets ("ЛистЗ"')

Move

Перемещение рабочего листа в другое место рабочей книги.

Синтаксис:

Move (Before, After)

  • Before ≈ лист рабочей книги, перед которым вставляется данный
  • After ≈ лист, после которого вставляется данный

Одновременно допустимо использование только одного из аргументов.

В примере Лист1 активной рабочей книги перемещается перед ЛистЗ той же рабочей книги:

Worksheets ( "Лист1" ) .Move Before : =Worksheets ("Лист3")

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

Evaluate

Преобразует выражение в объект или значение. Используется при вводе формул и ячеек из диалоговых окон.

В следующем примере в поле ввода первого появившегося ) диалогового окна вводится ссылка на ячейку, например A1, процедура считывает значение из этой ячейки и отображает его в диалоговом окне. После этого в поле ввода следующего диалогового окна надо ввести какое-нибудь арифметическое выражение, например sin(l) ^2. Процедура вычислит значение этого выражения и отобразит в диалоговом окне:

Sub Два Примера ДляEvaluate ( ) '

' Ввод адреса ячейки '

Ячейка = InputBox ( "Введите имя ячейки") '

' Считывание значения из ячейки с указанным адресом '

Значение = Evaluate (Ячейка) .Value '

' Вывод считанного значения в диалоговое окно

'

MsgBox CStr (Значение) '

' Ввод в диалоговое окно формулы, например, sin(1)^2 '

Функция = InputBox ( "Введите функцию" ) '

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

Значение = Evaluate (Функция)

' Вывод найденного значения в диалоговом окне '

MsgBox CStr (Значение) End Sub

 

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

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

 

Объекты Range и Selection

В иерархии Excel объект Range (диапазон) идет сразу после объекта worksheet. Объект Range является одним из ключевых объектов VBA. Объект Selection (выбор) возникает в VBA двояко ≈ либо как результат работы метода Select, либо при вызове свойства selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаще всего объект Selection принадлежит классу Range и при работе с ним можно использовать свойства и методы объекта Range. Интересной особенностью объектов Range и selection является то, что они не являются элементами никакого семейства объектов.

Адресация ячеек

При работе с объектом Range необходимо помнить, как в Excel ссылаются на ячейку рабочего листа. Имеются два способа ссылки на ячейки рабочего листа: относительная адресация (т. е. когда начало координат, задающее нумерацию строк и столбцов, связывается с объектом, вызвавшим Range) и абсолютная адресация.

Относительная адресация:

Формат А1

Имя ячейки состоит из имени столбца (их 256 ≈ А, В, ..., Z, АВ, ..., HZ, IA, ..., IV) и номера (1, ...., 16384).


Например, A1, C2

Формат R1C1

Адресация задается индексом строки и индексом столбца. Например, R1C1, R2C3

Абсолютная адресация:

Формат А1

Признаком абсолютной адресации является знак "$", предшествующий имени строки (абсолютной адресации на строку) или столбца (абсолютной адресации на столбец). Например, $А10, А$10 и $А$10 задают абсолютную адресацию на столбец А, строку 10 и ячейку А10 соответственно

Формат R1C1

Указывается смещение по отношению к активной ячейке. Смещение приводится в квадратных скобках, причем знак указывает на направление смещения. Например, если активной ячейкой является касз, то R[i]C[-1] дает ссылку на ячейку кзс2

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

А1

Лист2!А1

[МояКнига.хls]Лист2!А1

В первой строке данного примера дана относительная ссылка на ячейку AI активного рабочего листа, во второй ≈ на ячейку AI рабочего листа листа активной книги, а в третьей на ячейку AI рабочего листа лист2 книги моякнига-xls текущего рабочего каталога.

Задание групп строк и столбцов с помощью объекта Range

Если в диапазоне указываются только имена столбцов или строк, то объект Range задает диапазон, состоящий из указанных столбцов или строк. Например, Range ("А: с") задает диапазон, состоящий из столбцов А, в и с, а Range {"2: 2") - из второй строки. Другим способом работы со строками и столбцами являются методы ROWS (строки) и Columns (столбцы), возвращающие коллекции строк и столбцов. Например, столбцом А является columns (1), а второй строкой - ROWS (2).

Связь объекта Range и свойства Cells

Так как ячейка является частным случаем диапазона, состоящим только из единственной ячейки, объект Range также позволяет работать с ней. Объект cells (ячейки) ≈ это альтернативный способ работы с ячейкой. Например, ячейка А2 как объект описывается Range ("A2") или cells (1,2). В свою очередь объект ceils, вкладываясь в Range, также позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы, а именно,

Range ("А2:C3") И Range(Cells(1,2), Cells(3,3))

Определяют один и тот же диапазон.

Свойства и методы объекта Range

Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа Excel. Более 400 встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA.

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

Range.

Перечислим основные свойства объекта Range.

Value

Возвращает значение из ячейки или в ячейки диапазона. В данном примере переменной х присваивается значение из ячейки C1 :

х = Range ("C1") .Value В следующем примере в диапазон AI : В2 введена 1 :

Range ("A1:B2") .Value = 1

Name

Возвращает имя диапазона. В данном примере диапазону А1:В2 присваивается имя итоги:

Range ( "Al :B2") .Name = "Итоги"

Count

Возвращает число объектов в наборе. В данном примере переменной х присваивается значение, равное числу строк диапазона AI : В2 :

х = Range ( "Al :B2") .Rows . Count

CurrentRegion

Возвращает число строк текущего диапазона. Текущим является диапазон, ограниченный пустыми строками и столбцами и содержащий данный элемент. В следующем примере переменной у присваивается значение, равное числу строк в текущем диапазоне, содержащем ячейку AI :

у = Range ( "Al" ). CurrentRegion. Rows . Count

WrapText

Позволяет переносить текст при вводе в диапазон. Допустимые значения True и False. В следующем примере в ячейку В2 вводится текст длинный текст и в этой ; ячейке устанавливается режим ввода текста с переносом: With Range ("B2") .Value = "Длинный текст" .WrapText = True End With

EntireColumn, EntireRow

Возвращает столбец и строку соответственно. В данном примере очищается содержимое строки и выделяется столбец с активной ячейкой:

ActiveCell . EntireRow. Clear ActiveCell .EntireColumn. Select

ColumnWidth, RowHeight

Возвращает ширину столбцов и высоту строк диапазона соответственно

Comment

Возвращает объект comment (примечание), который связан с левым верхним углом диапазона при отображении на экране. Объект comment является элементом семейства comments. Метод AddComment, примененный к диапазону, создает новое примечание. Среди методов объекта comment отметим только метод Text, который задает текст, выводимый в примечании. Синтаксис:

Text (Text, Start, Overwrite)

  • Text ≈ строка, выводимая в качестве примечания П start ≈ с какого символа вводится текст в уже существующее примечание. Если аргумент опущен, то из примечания удаляется весь ранее введенный текст П overwrite ≈ допустимые значения: True (вводимый текст записывается поверх уже существующего) и False (вводимый текст вставляется в уже существующий) Среди свойств объекта Comment отметим только свойство visible, устанавливающее отображение примечания при активизации диапазона, имеющего определенное примечание. В качестве примера рассмотрим следующие инструкции, которые создают и отображают примечание ячейки вз, поясняющее запланированное событие (рис. 3.1):

With Range ("ВЗ")

.AddComment

.Text Text:= "Чрезвычайно важно!" & Chr(10) & "Про это никак нельзя забыть ! "

.Visible = True End With

 

Рис. 2.1. Пример отображения примечания на рабочем листе

Font

Возвращает объект Font (шрифт). Объект Font имеет следующие свойства:

  • Name ≈ строка, указывающая имя шрифта, например "Arial Cyr"
  • FontStyle ≈ СТИЛЬ, возможен Regular (обычный), Bold (ПОЛУЖИРНЫЙ), Italic(курсив), Bold italic (полужирный курсив)
  • size - размер
  • strikethrough ≈ допустимы два значения: True (буквы имеют линию по центру, как будто они перечеркнуты) и False (не имеют линии по центру)
  • Superscript ≈ допустимы два значения: True (текст используется как верхний индекс) и False (не используется как верхний индекс)
  • Subscript ≈ допустимы два значения: True (текст используется как нижний индекс) и False (не используется как нижний индекс)
  • Underline-допустимыми являются значения:
    • xlNone (нет подчеркивания)
    • xlSingie (одинарное, по значению)


    • xlDoubie (двойное, по значению)
    • xlsingleAccounting (одинарное, по ячейке)
    • Accounting (двойное, но ячейке)

Например, в следующем примере устанавливается для диапазона AI : в2 полужирный шрифт, красного цвета и с высотой символов 1 4 :

With Range ("A1:B2").Font

.Size = 14

.FontStyle = Bold

.Colorlndex = 3

End With

Formula

Возвращает формулу в формате Al. Например, следующая инструкция вводит в ячейку с2 формулу =$А$4+$А$ю:

Range ("C2") . Formula = "=$А$4+$А$10"

FormulaArray 1

Возвращает формулу диапазона в формате А1. В отличие от обыкновенной формулы рабочего листа, формула диапазона вводится на рабочем листе не посредством нажатия на клавишу <Enter>, а с помощью комбинации клавиш <Ctrl>+<Shift>+<Enter>. Следующая инструкция вводит в диапазон Е!:ЕЗ формулу {=Sum(Al:A3*Bl:B3) }:

Range ( "El :E3") .FormulaArray = "=Sum(Al:A3*Bl:B3) "

FormulaHidden

Допустимые значения: True (формула спрятана, если рабочий лист или книга защищены) и False (в противном случае). Например, следующая инструкция скрывает формулы в столбце А: Columns ("A") . FormulaHidden = True

FormulaLocal

Возвращает неанглоязычные (местные) формулы в формате А1. Например, следующая инструкция вводит в ячейку В2 формулу =СУММ(С1:С4):

Range("B2"). FormulaLocal = "=СУММ (С1:С4) "

JormulaRlCl

Возвращает формулу в формате R1C1. Например,

Range ("Bl") . FormulaRlCl = "=SQRT (R3C2 ) "

FormulaRlCl Local

Возвращает неанглоязычные формулы в формате R1C1

Text

Возвращает содержание диапазона в текстовом формате

HorizontalAlignment

Горизонтальное выравнивание. Допустимые значения:

  • xlceneral (обычное выравнивание, зависящее от типа вводимых значений)
  • xlcenter (выравнивание по центру)
  • xlRight (выравнивание по правому краю)
  • xlLeft (выравнивание по левому краю)
  • xUustify (выравнивание по ширине)
  • xlCenterAcrossSelection (выравнивание по центру в выделенном диапазоне)
  • xlFill (выравнивание по ширине


Vertical Alignment

Вертикальное выравнивание. Допустимые значения:

  • xlBottom (выравнивание по нижнему краю),
  • xlcenter (выравнивание по центру),
  • xUustify (выравнивание по высоте),
  • xlTop (выравнивание по верхнему краю)

Orientation

Ориентация. Допускается либо угол поворота текста в градусах от ≈90° до 90°, либо одно из допустимых значений:

  • xlDownward (выравнивание по левому краю сверху вниз, соответствует углу ≈90°)
  • xlHorizontal(выравнивание по горизонтали, соответствует нулевому углу )
  • xlupward (выравнивание по правому краю снизу вверх, соответствует углу 90°)
  • xlvertical (выравнивание по вертикали, нет соответствия в градусах)

ShrinkToFit

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

Ниже приведены наиболее часто используемые методы объекта Range.

Address

Возвращает адрес ячейки.

Синтаксис:

Address (rowAbsolute, coluimAbsolute, referenceStyle, external, relativeTo)

Аргументы:

  • RowAbsoiute ≈ допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на строку
  • ColumnAbsoiute ≈ допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на столбец
  • ref erenceStyle ≈ допустимы два значения xlAl и

    xiR1c1, если используется значение X1A1 или аргумент опущен, то возвращается ссылка в виде формата А1 П external ≈ допустимы два значения True и False, если используется значение False или аргумент опущен, то возвращается относительная ссылка

  • relativeTo ≈ В случае, если rowAbsoiute и СolumnAbsoiute равны False, a referenceStyle X1R1C1, то данный аргумент определяет начальную ячейку диапазона, относительно которой производится адресация Следующий пример показывает различные результаты адресации.

    MsgBox Cells (1, 1). Address ()
'
' В диалоговом окне отображается адрес $А$1 MsgBox Cells (1, 1) .Address (rowAbsoiute:=False)
'

' В диалоговом окне отображается адрес $А1 '

MsgBox Cells (1, 1) .Address (ref erenceStyle :=x1R1C1) '
' В диалоговом окне отображается адрес R1C1 '

 


Clear, ClearComments , Clear Contents, ClearFormats

И

Метод clear очищает диапазон. В следующем примере очищается диапазон Al :G37 . Range ("A1:G37") .Clear

Методы ClearComments, ClearContents, ClearFormats и ClearNotes очищают В диапазоне

AutoFit

Автоматически настраивает ширину столбца и высоту строки

ClearNotes

комментарии, содержание, форматы и примечания соответственно.

Copy

Копирует диапазон в другой диапазон или в буфер обмена.

Синтаксис:

Copy (destination)

  • Аргумент destination определяет диапазон, куда копируется данный диапазон. Если аргумент destination опушен, то копирование происходит в буфер обмена. В данном примере диапазон AI : D4 рабочего листа Лист! копируется в диапазон Е5:Н8 листа лист2:

Worksheets ("Лист1" ) . Range ( "А1 : D4 " ) .Сору destination :=Worksheets ("Лист2") .Range ("E5")

Cut

Копирует диапазон с удалением в указанный диапазон или в буфер обмена,

Синтаксис:

Cut (destination)

  • Аргумент destination определяет диапазон, в который копируется данный диапазон. Если аргумент destination опущен, то диапазол копируется в буфер обмена. В данном примере диапазон AI : D4 рабочего листа лист! копируется с удалением в буфер обмена:

Worksheets ( "Лист1 " ) . Range ( "А1 : D4 " ) . Cut

Delete

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

Rows (3) .Delete

Columns, Rows

Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон. В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно:

i = Selection. Columns . Count j = Selection. Rows . Count

Insert

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

Worksheets ( "Лист1" ) . Rows (4 ) .Insert

Offset

Возвращает диапазон, смещенный относительно данного на величины, специфицированные в аргументах.

Синтаксис:

Of fset (rowOffset, columnOf f set )

Аргументы:

  • rowOffset ≈ целое число, указывающее сдвиг по строкам
  • columnOf f set ≈ целое число, указывающее сдвиг по столбцам Например, в следующем примере активизируется ячейка, расположенная на три строки ниже и на два столбца левее относительно предыдущей активной ячейки:

ActiveCell.Offset (rowOf fset :=3, columnOf fset : =-2) .Activate


Select

Выделение диапазона

PasteSpecial

Специальная вставка из буфера обмена.

Синтаксис:

BasteSpecial (paste, operation, skipBlanks, transpose)

Аргументы:

  • Paste ≈ определяет ту часть содержимого буфера обмена, которая должна быть вставлена в диапазон. Допустимые значения:
    • xlAll (все)
    • xl Formulas (формулы)
    • xlvaiues (значения)
    • xlFormats (форматы)
    • xlNotes (примечания)
    • xlAllExceptBorders (без рамки)
  • Operation ≈ определяет операции.Допустимые значения:
    • xlNone (нет)
    • xlAdd (СЛОЖИТЬ)
    • xlSubtract (ВЫЧИСТЬ)
    • xlMultiply (УМНОЖИТЬ)
    • xlDivide (разделить)
  • SkipBlanks ≈ допустимые значения: True (пустые ячейки при вставке не учитываются) и False (пустые ячейки учитываются)
  • Transpose ≈ допустимые значения True (диапазон выводится транспонированным) и False (не транспонированным)

В приведенном ниже примере данные из диапазона C1:C5 рабочего листа лист1 вставляются в диапазон D1 : D5 того же листа, причем они не заменяют уже существующие данные в диапазоне D1:D5, а прибавляются к ним данные из диапазона C1 : С5 :

Worksheets ( "Лист1 " ) . Range ( "С1 : С5 " ) . Сору Worksheets ("Лист1") .Range ("D1: D5") . PasteSpecial operation : =xlAdd

Метод PasteSpecial программирует выполнение на рабочем листе команды Правка, Специальная вставка (Edit, Paste Special). Аргументы метода PasteSpecial соответствуют установкам диалогового окна Специальная вставка (Paste Special), отображаемого с помощью этой команды (рис. 3.2)

Рис. 2.2. Диалоговое окно Специальная вставка

AddComment

Добавляет примечание к диапазону.

Синтаксис:

AddComment (Text)

  • Text ≈ строковое выражение добавляемое в качестве примечания В следующем примере создается примечание внимание ! ячейки AI активного рабочего листа:

Range ( "А! " ) . AddComment "Внимание!"