цКЮБЮ
2.
нЯМНБМШЕ
НАЗЕЙРШ VBA
нАЗЕЙР Application
(ОПХКНФЕМХЕ) ЪБКЪЕРЯЪ ЦКЮБМШЛ Б ХЕПЮПУХХ НАЗЕЙРНБ Excel Х ОПЕДЯРЮБКЪЕР ЯЮЛН
ОПХКНФЕМХЕ Excel. нМ ХЛЕЕР АНКЕЕ 120 ЯБНИЯРБ Х 40 ЛЕРНДНБ. щРХ ЯБНИЯРБЮ Х ЛЕРНДШ
ОПЕДМЮГМЮВЕМШ ДКЪ СЯРЮМНБЙХ НАЫХУ ОЮПЮЛЕРПНБ ОПХКНФЕМХЪ Excel. йПНЛЕ РНЦН, НАЗЕЙР
Application ОНГБНКЪЕР БШГШБЮРЭ АНКЕЕ 400 БЯРПНЕММШУ ТСМЙЖХИ ПЮАНВЕЦН КХЯРЮ ОПХ
ОНЛНЫХ ЙНМЯРПСЙЖХХ БХДЮ:
Application.тСМЙЖХЪпЮАНВЕЦНкХЯРЮ(юПЦСЛЕМРШ)
мЮОПХЛЕП:
Application
. Pi ( ) |
бШВХЯКЕМХЕ
ВХЯКЮ О |
||
Application.
Pmt (юПЦСЛЕМРШ) |
нОПЕДЕКЕМХЕ
ОНЯРНЪММШУ ОЕПХНДХВЕЯЙХУ ОКЮРЕФЕИ ОПХ ОНЯРНЪММНИ ОПНЖЕМРМНИ ЯРЮБЙЕ
Я ОНЛНЫЭЧ ТСМЙЖХХ оокюр (плр) |
||
Application
. Sum (юПЦСЛЕМРШ) |
мЮУНФДЕМХЕ ЯСЛЛШ
ГМЮВЕМХИ ХГ ЪВЕЕЙ ДХЮОЮГНМЮ |
||
оПХБЕДЕЛ
МЕЯЙНКЭЙН МЮХАНКЕЕ ВЮЯРН ХЯОНКЭГСЕЛШУ ЯБНИЯРБ, ЛЕРНДНБ Х ЯНАШРХИ НАЗЕЙРЮ 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 ≈ СЯРЮМЮБКХБЮЕРЯЪ ЛЮЙЯХЛЮКЭМШИ ПЮГЛЕП НЙМЮ |
||
лЕРНДШ |
бШОНКМЪЕЛШЕ
ДЕИЯРБХЪ |
||
Calculate
Run
Volatile
Wait
OnKey |
бШГШБЮЕР ОПХМСДХРЕКЭМНЕ
БШВХЯКЕМХЕ БН БЯЕУ НРЙПШРШУ ПЮАНВХУ ЙМХЦЮУ. мЮОПХЛЕП: Application. Calculate гЮОСЯЙЮЕР МЮ
БШОНКМЕМХЕ ОНДОПНЦПЮЛЛС ХКХ ЛЮЙПНЯ. яХМРЮЙЯХЯ: Run (Macro,
Argl, Arg2, ...)
Application. Run Macro:= "пЮЯВЕР" - ГЮОСЯЙЮЕР ЛЮЙПНЯ
пЮЯВЕР бШГШБЮЕР ОЕПЕБШВХЯКЕМХЕ
ТСМЙЖХХ ОНКЭГНБЮРЕКЪ ОПХ ХГЛЕМЕМХХ ГМЮВЕМХИ ОЮПЮЛЕРПНБ. мЮОПХЛЕП,
ТСМЙЖХЪ йБЮДПЮР АСДЕР ЮБРНЛЮРХВЕЯЙХ ОЕПЕЯВХРШБЮРЭ ПЕГСКЭРЮР МЮ ПЮАНВЕЛ
КХЯРЕ ОПХ ХГЛЕМЕМХХ ГМЮВЕМХЪ ЮПЦСЛЕМРЮ: Function йБЮДПЮР (У) Application . Volatile йБЮДПЮР
= У^2 End Function бПЕЛЕММН ОПХНЯРЮМЮБКХБЮЕР
ПЮАНРС ОПХКНФЕМХЪ АЕГ НЯРЮМНБЙХ ПЮАНРШ ДПСЦХУ ОПНЦПЮЛЛ. яХМРЮЙЯХЯ: Wait (Time)
б ЯКЕДСЧЫЕЛ
ОПХЛЕПЕ ОНЙЮГШБЮЕРЯЪ, ЙЮЙ СЯРЮМНБХРЭ БПЕЛЪ, ВРНАШ БНГНАМНБКЕМХЕ ПЮАНРШ
ОПХКНФЕМХЪ МЮВЮКНЯЭ Б 17 ВЮЯНБ: Application. Wait
"17:00:00" сЯРЮМЮБКХБЮЕР
БШОНКМЕМХЕ ЯОЕЖХТХЖХПНБЮММНИ ОПНЖЕДСПШ ОПХ МЮФЮРХХ ГЮДЮММНИ ЙНЛАХМЮЖХХ
ЙКЮБХЬ. яХМРЮЙЯХЯ: OnKey(Key, Procedure)
|
||
лЕРНДШ |
бШОНКМЪЕЛШЕ
ДЕИЯРБХЪ |
||
OnRepeat Х OnUndo |
дНОСЯРХЛН ХЯОНКЭГНБЮМХЕ
ЯНВЕРЮМХЪ НДМНБПЕЛЕММН МЮФЮРШУ ЙКЮБХЬ. я ЩРНИ ЖЕКЭЧ ДКЪ ОЕПЕВХЯКЕММШУ
РПЕУ ЙКЮБХЬ СЯРЮМНБКЕМШ ЯКЕДСЧЫХЕ ЙНДШ:
б ОПХЛЕПЕ ОПНЖЕДСПЕ
юЛНПРХГЮЖХЪ МЮГМЮВЕМЮ ЙНЛАХМЮЖХЪ ЙКЮБХЬ <Ctrl>+<+>, Ю
ОПНЖЕДСПЕ оПНЖЕМРМЮЪяРЮБЙЮ ≈ <Shift>+<Ctrl>+<->.>: Application. OnKey "^{+}", "юЛНПРХГЮЖХЪ" Application. нОйЕС
"+^ {RIGHT}", "оПНЖЕМРМЮЪяРЮБЙЮ" нОПЕДЕКЪЕР ОПНЖЕДСПС,
БШОНКМЪЕЛСЧ ОПХ БШАНПЕ ЙНЛЮМДШ оПЮБЙЮ, оНБРНПХРЭ (Edit, Repeat) Х
оПЮБЙЮ, нРЛЕМХРЭ (Edit, Undo) ЯННРБЕРЯРБЕММН. |
||
лЕРНДШ |
бШОНКМЪЕЛШЕ
ДЕИЯРБХЪ |
||
OnTime
Quit |
Синтаксис: OnRepeat (Text, Procedure) OnUndo (Text, Procedure)
Procedure ≈
имя подпрограммы, выполняемой при выборе команды Правка, Повторить
(Edit, Repeat) Назначает выполнение
процедуры на определенное время. Синтаксис: OnTime (EarliestTime, Procedure, LatestTime, Schedule)
В следующем
примере демонстрируется, как запустить процедуру Очистка на выполнение
через 15 секунд от текущего времени: Application. OnTime Now +_ TimeValue ("00:00:15"), "Очистка" Закрывает приложение. Например: Application. Quit |
||
Событие | Когда возникает событие |
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 |
Возвращает имя
инсталлированных на компьютере средств работы с электронной почтой.
Допустимые значения:
В следующем примере
проверяется, инсталлирована ли электронная почта. Если электронная почта
не установлена, то отображается соответствующее сообщение: If Application. MailSystem <> xlMAPI Then MsgBox "Microsoft Mail неинсталлирован" End If |
||
Методы
объекта Workbook и семейства Workbooks
Методы |
Выполняемые
действия |
||
Activate |
Активизирует рабочую
книгу так, что ее первый рабочий лист становится активным. Например: Workbook. Activate
|
||
Add | Создает
новый объект для семейства Workbooks.
Синтаксис: Add (Template)
Если аргумент
Template опущен, то создается новая рабочая книга с количеством листов,
заданных свойством SheetsInNewWorkbook |
||
Protect |
Защищает рабочую
книгу от внесения в нее изменений. Синтаксис: Protect (Password,
Structure, Windows)
В следующем примере
устанавливается защита для активной рабочей книги: ActiveWorkbook. Protect
Password:= "ВинниПух" |
||
Unprotect |
Снятие защиты с рабочей книги. Синтаксис: Unprotect (Password)
В следующем
примере снимается защита с активной рабочей книги: ActiveWorkbook.
Unprotect Password := "ВинниПух " |
||
Close |
Закрытие рабочей
книги |
||
Open |
Открытие существующей
рабочей книги |
||
OpenText |
Открытие текстового
файла, содержащего таблицу данных |
||
Save |
Сохранение рабочей
книги |
||
SaveAs |
Сохранение рабочей книги в другом файле. Синтаксис: SaveAs (Filename)
В следующем
примере активная рабочая книга сохраняется в файле с именем НоваяВерсия: ActiveBook. SaveAs
Filename := "НоваяВерсия" |
||
SaveAsCopy |
Сохранить рабочую
книгу в другом файле, оставляя рабочую книгу в памяти с прежним именем. Синтаксис: SaveAs (Filename,
FileFormat)
В следующем
примере активная рабочая книга сохраняется в файле с именем ЗапаснаяВерсия: ActiveBook. SaveAsCopy
Filename := "ЗапаснаяВерсия" |
||
PrintPreview |
Предварительный
просмотр |
||
Printout |
Печать содержимого
рабочей книги |
||
SendMail |
Отсылка почты
используя встроенные средства Microsoft Mail (MAPI). Синтаксис: SendMail (Recipients,
Subject, ReturnReceipt )
В следующем примере
рабочая книга отсылается по электронной почте получателю Порфирию Заковыркину: 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)
xlExce14MacroSheet
и хlЕхсеl4 IntlMacroSheet. Например: ActiveWorkbook
. Worksheets . Add ≈ вставляется
новый лист перед активным листом активной рабочей книги |
||
Delete |
Удаляет рабочий
лист. Например: Worksheets (1)
. Delete - удаляется первый рабочий лист из активной рабочей книги |
||
|
Защищает рабочий
лист от внесения в него изменений Синтаксис: Protect (Password,
DrawingObjects, Contents, Scenarios, User Inter faceOnly)
|
||
|
В следующем
примере установлена полная защита активного рабочего листа от любых
изменений со стороны пользователя: Active Sheet .Protect Password: =" Секрет" , DrawingObjects :=True, Contents :=True,
Scenarios : =True |
||
Unprotect |
Снятие защиты с рабочего листа. Синтаксис: Unprotect (Password)
В следующем
примере снимается защита с активного рабочего листа: ActiveSheet . Protect
Password: ="Секрет" |
||
Copy |
Копирование рабочего листа в другое место рабочей книги. Синтаксис: Copy (Before, .
After)
Одновременно
допустимо использование только одного из аргументов. В следующем
примере Лист1 активной рабочей книги копируется после ЛистЗ той же
рабочей книги: Worksheets ( "Лист1")
.Сору after :=Worksheets ("ЛистЗ"') |
||
Move |
Перемещение
рабочего листа в другое место рабочей книги. Синтаксис: Move (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 |
Событие | Когда возникает событие |
BeforeClose | При закрытии рабочей книги |
BeforePrint | Перед печатью рабочей книги |
BeforeSave | Перед сохранением рабочей книги |
Deactivate | Когда рабочая книга теряет фокус |
NewSheet | При добавлении нового листа |
Open | При открытии рабочей книги |
SheetActivate | При активизации любого рабочего листа |
Sheet Deactivate | Когда рабочий лист теряет фокус |
В иерархии
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)
With Range ("ВЗ") .AddComment .Text Text:= "Чрезвычайно важно!" & Chr(10) & "Про это никак нельзя забыть ! " .Visible = True End With |
||
Рис.
2.1. Пример отображения примечания на рабочем листе
Font |
Возвращает объект Font (шрифт). Объект Font имеет следующие свойства:
|
||
|
Например, в
следующем примере устанавливается для диапазона 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 |
Горизонтальное выравнивание. Допустимые значения:
|
||
Vertical Alignment |
Вертикальное
выравнивание. Допустимые значения:
|
||
Orientation |
Ориентация. Допускается либо угол поворота текста в градусах от ≈90° до 90°, либо одно из допустимых значений:
|
||
ShrinkToFit |
Допустимые значения:
True (автоматическое изменение шрифта так, чтобы текст помещался в
ячейку) и False (в противном случае) |
||
Ниже приведены
наиболее часто используемые методы объекта Range.
Address |
Возвращает адрес ячейки. Синтаксис: Address (rowAbsolute,
coluimAbsolute, referenceStyle, external, relativeTo) Аргументы:
|
||
Clear, ClearComments
, Clear Contents, ClearFormats И |
Метод clear очищает
диапазон. В следующем примере очищается диапазон Al :G37 . Range ("A1:G37")
.Clear Методы ClearComments, ClearContents, ClearFormats и ClearNotes очищают В диапазоне |
||
AutoFit |
Автоматически
настраивает ширину столбца и высоту строки |
||
ClearNotes |
комментарии,
содержание, форматы и примечания соответственно. |
||
Copy |
Копирует диапазон
в другой диапазон или в буфер обмена. Синтаксис: Copy (destination)
Worksheets ("Лист1"
) . Range ( "А1 : D4 " ) .Сору destination :=Worksheets
("Лист2") .Range ("E5") |
||
Cut |
Копирует диапазон с удалением в указанный диапазон или в буфер обмена, Синтаксис: Cut (destination)
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 ) Аргументы:
ActiveCell.Offset (rowOf fset :=3, columnOf fset : =-2) .Activate
|
||
Select |
Выделение диапазона |
||
PasteSpecial |
Специальная вставка из буфера обмена. Синтаксис: BasteSpecial (paste, operation, skipBlanks, transpose) Аргументы:
В приведенном ниже
примере данные из диапазона 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)
Range ( "А!
" ) . AddComment "Внимание!" |
||