20.01.2015 Views

Управление документами Word и Excel на VBA - eDrive

Управление документами Word и Excel на VBA - eDrive

Управление документами Word и Excel на VBA - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

20<br />

MsgBox Worksheets (1).Name & " открыт"<br />

End Sub<br />

Sub Операц<strong>и</strong><strong>и</strong>НадЛ<strong>и</strong>стам<strong>и</strong> ()<br />

Workbooks.Open ("Кн<strong>и</strong>га1")<br />

Workbooks ("Кн<strong>и</strong>га1.xls").Worksheets (2).Delete<br />

Workbooks ("Кн<strong>и</strong>га1.xls").Worksheets (1).Name = "Пр<strong>и</strong>мер"<br />

Workbooks ("Кн<strong>и</strong>га1.xls").Worksheets ("Пр<strong>и</strong>мер").Activate<br />

ActiveWorkbook.Styles ("Normal").Font.Bold = True<br />

MsgBox "Этот л<strong>и</strong>ст пере<strong>и</strong>менован, а следующ<strong>и</strong>й удален"<br />

Worksheets.Add After:=ActiveSheet<br />

MsgBox "Добавлен л<strong>и</strong>ст взамен удаленного"<br />

Worksheets ("Пр<strong>и</strong>мер").Move After:=Sheets (Sheets.Count)<br />

End Sub<br />

Процедурное программ<strong>и</strong>рован<strong>и</strong>е в <strong>Excel</strong><br />

Самые распространенные задач<strong>и</strong>, решаемые <strong>VBA</strong> в среде <strong>Excel</strong>,<br />

посвящены работе с ячейкам<strong>и</strong> рабоч<strong>и</strong>х л<strong>и</strong>стов, <strong>и</strong>х д<strong>и</strong>апазо<strong>на</strong>м<strong>и</strong>, столбцам<strong>и</strong> <strong>и</strong><br />

строкам<strong>и</strong>. Для этого в <strong>Excel</strong> есть ряд классов, методов <strong>и</strong> свойств:<br />

• метод Range класса Worksheet возвращает д<strong>и</strong>апазон (в частност<strong>и</strong>,<br />

ячейку) по <strong>и</strong>мен<strong>и</strong> <strong>и</strong>л<strong>и</strong> переменной, <strong>и</strong>спользуемой в качестве<br />

аргумента; каждый д<strong>и</strong>апазон является объектом класса Range;<br />

• метод Cells обеспеч<strong>и</strong>вает выбор одной ячейк<strong>и</strong> рабочего л<strong>и</strong>ста в<br />

соответств<strong>и</strong><strong>и</strong> с двумя ч<strong>и</strong>словым<strong>и</strong> аргументам<strong>и</strong> — <strong>и</strong>ндексам<strong>и</strong> строк<strong>и</strong><br />

<strong>и</strong> столбца; пр<strong>и</strong> отсутств<strong>и</strong><strong>и</strong> аргументов выб<strong>и</strong>раются все ячейк<strong>и</strong><br />

рабочего л<strong>и</strong>ста;<br />

• метод Offset класса Range задает смещен<strong>и</strong>е д<strong>и</strong>апазо<strong>на</strong> относ<strong>и</strong>тельно<br />

заданной ячейк<strong>и</strong>;<br />

• методы Column <strong>и</strong> Row класса Worksheets возвращают столбец <strong>и</strong><br />

строку.<br />

Некоторые члены (<strong>на</strong>пр<strong>и</strong>мер, свойство Value) пр<strong>и</strong> обращен<strong>и</strong><strong>и</strong> можно<br />

опускать как <strong>и</strong>спользуемые по умолчан<strong>и</strong>ю.<br />

Переменные <strong>VBA</strong> могут хран<strong>и</strong>ть объекты <strong>Excel</strong> <strong>и</strong> ман<strong>и</strong>пул<strong>и</strong>ровать<br />

<strong>и</strong>м<strong>и</strong>. Оператор Set превращает обычную переменную в объектную<br />

переменную, которую можно <strong>и</strong>спользовать в программе вместо объекта.<br />

Объект<strong>на</strong>я перемен<strong>на</strong>я указывает <strong>на</strong> объект до тех пор, пока ей не будет<br />

пр<strong>и</strong>свое<strong>на</strong> ссылка <strong>на</strong> другой объект <strong>и</strong>л<strong>и</strong> з<strong>на</strong>чен<strong>и</strong>е Nothing.<br />

Пр<strong>и</strong>меры<br />

Sub Д<strong>и</strong>апазоны1 ()<br />

Range ("a1").Value = 1234<br />

Range ("a1:c5").Select<br />

Range ("a5").Value = Range ("a1").Value

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!