Vba для Excel Часто используемые объекты Excel - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Vba для Excel Часто используемые объекты Excel - страница №1/1

VBA для Excel

Часто используемые объекты Excel

Методы объектов

Классы объектов

  • Программные объекты сгруппированы в иерархические классы. Все объекты одного класса обладают одними (или схожими) методами и свойствами. Каждый класс объектов может содержать один или более подклассов.

  • Объекты, принадлежащие к определенному классу, называются экземплярами класса.

  • Класс объекта определяет его свойства и методы.

  • При запуске Excel создает экземпляр Excel, и при каждом запуске это будет новый экземпляр. В свою очередь при создании или открытии рабочей книги в Excel будет образован экземпляр объекта Workbook.

Объектные переменные

  • Для организации ссылок на объекты в VBA имеется тип данных Object. Переменные или выражения этого типа ссылаются на объект VBA или объект, принадлежащий приложению, например, на объект приложения Excel: Workbook, Worksheet, Range и т.п. Переменные типа Object объявляются инструкцией

  • Dim <имя переменной> as Object

Объектные выражения

  • Объектное выражение в VBA возвращает объектную ссылку на конкретный объект. Оно может содержать объектные переменные, ссылки на объект или метод, возвращающий объект.

Объектные выражения для Excel

  • Объектная ссылка - это адрес, который указывает на ячейку памяти, в которой хранится объект.

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

Set Var = Object,

где Var - переменная типа Object или Variant,

Object - любая допустимая объектная ссылка или

объектное выражение.

  • Переменной Var, объявленной с определенным типом объекта (Range или Workbook), надо присваивать значение объектного выражения с тем же объектным типом, например:

Dim asheet as Worksheet

Set asheet = Application.ActiveSheet

Доступ к объектам с помощью инструкций With ... End With

  • В VBA имеется специальная структура With...End With, которая позволяет ссылаться на свойства или методы, принадлежащие одному объекту, и не определять каждый раз ссылку на объект. Синтаксис этой инструкции имеет вид:

With Object

<Инструкции, использующие свойства и

методы объекта>

End With,

где Object - любая допустимая ссылка на объект.

  • Благодаря структуре With ... End With при обращении к свойствам и методам объекта ActiveWorkBook ссылку на объект можно опустить и перед свойством оставить только символ разделителя (.). Это ускорит выполнение процедуры, т.к. ссылка на объект выполняется только один раз.

Семейство объектов

  • Семейство - это группа связанных объектов, например, несколько листов рабочей книги.

  • Каждый объект семейства называется элементом. Семейство само по себе является объектом и обладает собственными свойствами и методами.

  • Так, каждое семейство имеет свойство Count, которое возвращает количество элементов коллекции.

  • Следующая инструкция позволяет узнать, сколько листов в рабочей книге:

AppUcation.ActiveWorkBook.WorlSheets.Count

где WorkSheets - семейство (коллекция) всех рабочих листов рабочей книги, ActiveWorkBook - свойство объекта Excel Application, которое возвращает имя текущей рабочей книги, а свойство Count семейства Worksheets - общее количество рабочих листов в коллекции.

Контейнер объектов

  • Одни объекты могут содержать другие.

  • Контейнером объекта может быть любой объект, содержащий один и более объектов.

  • Все объектные ссылки контейнера с помощью символа разделителя (.) составляют одно выражение.

Контейнер объектов

  • Объект Application является внешним контейнером, в нем содержатся все остальные объекты, которые могут являться контейнерами для других объектов.

  • Объект Application включает в себя семейства WorkBooks и Addlns: WorkBooks - семейство всех открытых рабочих книг, a Addlns - установленных надстроек.

  • Семейство WorkBooks, в свою очередь, содержит семейства Worksheets и Sheets. В семейство Worksheets включены отдельные рабочие листы.

  • Для создания ссылки на конкретный объект надо определить контейнер этого объекта.

Работа с объектами Workbook

Обращение к объекту Workbook

  • Объект Workbook представляет собой файл рабочей книги с расширением .xls или .xla. Открытые рабочие книги образуют семейство Workbooks.

Обращение к объекту Workbook

  • Чтобы обратиться к конкретной открытой рабочей книге, следует воспользоваться свойством Workbooks объекта Application, имеющим синтаксис

Workbooks (Index).

  • Здесь индекс Index представляет собой одно из двух выражений;

  • числовое выражение, значение 1 определяет первую открытую в данном сеансе книгу, 2 - вторую открытую в данном сеансе книгу и т.д;

  • строковое выражение, содержащее имя открытой рабочей книги, которая будет активной.

Обращение к объекту Workbook

Sub SetWorkbookProtection()
'Устанавливается защита книги

Workbooks("Pacчeты.XLS”).Protect Password:=”Бyкeт",Stracture:=True, Windows:=True
MsgBox "Установлена защита книги Pacчeты.XLS ", vbInformation

End Sub

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

  • Для открытия и загрузки в память нужной рабочей книги используется метод Open: Workbooks.Open(Filename).

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

  • Если же не указать имени диска или папки, Excel будет искать файл с книгой Filename в текущей папке на текущем диске.

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

Sub OpenWorkbook()

'Открываем книгу

Dim WorkbookName As String

WorkbookName = InputВох(“Укажите полное имя книги:”)

If WorkbookName <> "" Then

Workbooks.Open Filename :=WorkbookName

End If

End Sub

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

  • В профессиональных программах пользователь должен выбирать, а не вводить имя открываемого файла. Для этого используется встроенное в Excel диалоговое окно Open, которое можно открывать либо методом GetOpenFilename, либо с помощью коллекции Dialog (эта коллекция содержит все диалоговые окна, встроенные в Excel):

Application.Dialogs(xlDtalogOpen).Show.

  • Если необходимо пользователю разрешить открывать рабочую книгу только для чтения или ее надо защитить паролем, то метод Open имеет до 13 аргументов, которые позволяют предусмотреть все возможные ситуации. Чтобы увидеть все аргументы метода Open и получить справку по их заданию, используйте окно Object Browser.

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

  • Если в процедуре предусматривается создание новой рабочей книги, то используется метод Add коллекции Workbooks:

WorkbooksAdd ([Template])

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

  • Необязательный аргумент Template строкового типа задает имя шаблона, на основе которого создается новая рабочая книга. Если этот аргумент опущен, Excel по умолчанию создает рабочую книгу с количеством чистых рабочих листов, заданных на вкладке Общие в диалоговом окне Параметры, которое появляется после выбора команды Сервис, Параметры.

  • Количество листов во вновь создаваемой рабочей книге можно также задать, установив свойство Application.SheetsInNewWorkbook.

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

  • Когда в аргументе Template задано только имя шаблона, то он должен находиться в рабочей папке. В противном случае надо задать в аргументе Template полный путь; имя диска, папки и файла с этим шаблоном.

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

Sub CreateMonthlyReport()

'Создается новая книга на основе шаблона Excel

Dim dPath As String

dPath = "C:\Program Files\Microsoft Office"

dPath = dPath & "\Templates\1033"

Workbooks.Add Template:=dPath & "Expense

Statement"

With ActiveWorkbook

.Title = "Счета для налоговой полиции"

.Subject = "Счета за январь 2004"

.Author = "Петров Н.Н."

End With

End Sub

Активизация рабочей книги

  • Если VBA-программа предусматривает одновременное открытие нескольких рабочих книг, то понадобится переключаться от одной книги к другой.

  • Чтобы сделать рабочую книгу активной, используется метод Activate:

Object. Activate.

Активизация рабочей книги

Sub ActivateTest()

‘ Делает активными книги, не меняя при этом экрана.

Dim SaveBook As String

SaveBook = ActiveWorkbook.Name

Aplication.ScreenUpdating = False

Workbooks ("Pacчeты.XLS”). Activate

‘Инструкции с расчетами в книге Расчеты .XLS

Workbooks(SaveBook). Activate

Application.ScreenUpdating = True

End Sub

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

  • Для сохранения пользователем изменений в рабочей книге, выполненных программой, можно включить в меню программы встроенную в Excel команду Save (Сохранить) либо добавить кнопку Save к панели инструментов.

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

  • В этом случае для сохранения рабочей книги используется метод Save: Object.Save, где Object - объектная ссылка на открытый объект Workbook, который надо сохранить.

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

  • Другой способ сохранения предоставляет метод SaveCopyAs объекта WorkBook. Он создает копию указанной рабочей книги на диске.

  • Этот метод полезен, например, если надо создать команду Откат, которая будет возвращать рабочую книгу в первоначальное состояние.

  • В этом случае метод SaveCopyAs используется для создания на диске копии файла рабочей книги до того, как в этой книге будут сделаны какие-либо изменения. Затем можно вернуться к этой копии, открыв ее и снова сохранив книгу под ее исходным именем.

  • Синтаксис метода SaveCopyAs:

Object.SaveCopyAs(FUename, FileFormat),

  • где Object объектная ссылка на объект WorkBook, который должен быть сохранен, a Filename —. строка с именем файла, в котором будет сохранена рабочая книга.

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

Sub BackUpToFloppy()

'Выполняется сохранение файла и создается резервная копия на диске А:

Const FloppyDrv = "A:"

With Active Workbook

If Not .Saved Then

.Save

. SaveCopyAs Filename:=FloppyDrv & .Name

end With

End Sub

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

  • Не надо использовать метод Save для новой рабочей книги, которая никогда ранее не сохранялась, иначе Excel сохранит новую книгу под ее текущим именем, например Книга1.xls.

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

Object.SaveAs(Filename).

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

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

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

Workbooks. Close

ObjectClose(SaveChanges)

  • Первая синтаксическая форма - просто закрывается каждая открытая рабочая книга. Перед ее закрытием Excel предложит вам сохранить изменения в книге, если это необходимо.

  • Вторая форма метода Close предполагает закрытие конкретной рабочей книги, указанной как Object.

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

  • Аргумент SaveChanges используется для определения порядка закрытия рабочей книги, если:

  • аргумент имеет значение True, Excel автоматически сохранит книгу перед ее закрытием;

  • SaveChanges равен False, Excel закроет рабочую книгу без сохранения любых изменений;

  • аргумент SaveChanges опущен, Excel предложит вам сохранить, если необходимо, внесенные в книгу изменения.

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

Sub CloseAll()

'Закрывает все открытые книги и предлагает сохранить изменения

Const qButtons = vbYesNo + vbQuestion

Dim Book As Workbook, Ans As Integer, MsgPrompt As String

For Each Book In Workbooks

If Not (Book.Name = ThisWorkbook.Nane) Then

If Not BooLSaved Then

MsgPrompt = "Сохранить изменения в " & Book.Name & "?"

Ans = MsgBox(Prompt:=MsgPrompt, Buttons:= qButtons)

IfAns = vbYesThen

Book.Close SaveChanges:= True

Else

Book.Close SaveChanges:=False

End If

Else

Book.Close

End If

End If

Next Book

End Sub

Работа с объектами Worksheet

Обращение к объекту Worksheet

  • Каждый рабочий лист является объектом Worksheet,который представляет собой коллекцию всех листов в активной рабочей книге.

  • Для ссылки на конкретный рабочий лист служит коллекция Worksheets объекта Workbook:

Object.Worksheets(Index),

  • где Object представляет ссылку на объект Workbook, который содержит лист.

Обращение к объекту Worksheet

  • Индекс Index может иметь следующий смысл:

  • число, представляющее номер листа, например, 1 означает первый лист в рабочей книге, 2 - второй лист и т.д.;

  • имя (текстовая строка) рабочего листа, которое появляется в заголовке рабочего листа.

Обращение к объекту Worksheet

Sub SetWorksheetProtection()

' устанавливает защиту листа WorkBooks("Pacчeты.XLS”).Worksheets(«Лист1”).Protect

Pasword:=“Иванов" Contents:=True, Scenarios:=True

MsgBox "Защита на лист 'Лист1’ установлена.“

End Sub

Обращение к объекту Worksheet

Sub SetWorksheetProtection()

' устанавливает защиту листа WorkBooks("Pacчeты.XLS”).Worksheets(«Лист1”).Protect

Pasword:=“Иванов" Contents:=True, Scenarios:=True

MsgBox "Защита на лист 'Лист1’ установлена.“

End Sub

Обращение к объекту Worksheet

  • Для ссылки на активный рабочий лист используется свойство ActiveSheet рабочей книги, а на любой лист активной книги вместо коллекции Worksheets - коллекция Sheets, содержащая не только рабочие листы, но и листы диаграмм.

  • Не следует указывать объект Workbook, если процедура и рабочий лист находятся в одной и той же рабочей книге.

Активизация рабочего листа

  • Для переключения между рабочими листами используется метод Activate:

Object. Activate,

  • где Object - ссылка на объект Worksheet, который будет использован.

Активизация рабочего листа

Sub DisplayReport()

Dim Ans As Integer, qBtns As Integer, mPrompt As String

mPrompt = " Вы хотите просмотреть лист ""Лист!"'?"

qBtns = vbYesNo + vbQuestion + vbDefaultButton2

Ans= MsgBox(Prompt:=mPrompt, Buttons :=qBtns)

If Ans = vbYes Then

Workbooks (“Продажи.XLS").Worksheets(“Лист1”).

Activate

End If

End Sub

Создание нового рабочего листа

  • Коллекция Worksheets имеет метод Add, который можно использовать для вставки новых листов в рабочую книгу. Синтаксис этого метода таков: ObjectsWorksheetssAdd([Before] [,After] [,Count] [,Type])

  • Здесь Object представляет ссылку на рабочую книгу, в которую будет добавлен новый рабочий лист. Аргумент Before указывает на лист, перед которым вставляется новый лист; аргумент After указывает на рабочий лист, после которого вставляется новый лист (оба этих аргумента нельзя использовать одновременно в одной и той же инструкции ).

  • Если эти аргументы будут опущены, VBA добавит новый рабочий лист перед активным листом. Аргумент Count представляет собой число добавляемых новых рабочих листов (метод Add добавляет только один лист, если аргумент Count опущен).

  • Аргумент Туре представляет тип вставляемого листа. Он может принимать одно из трех значений (определенных в классе xlSheetType): xlWorksheet (по умолчанию), xlExcel4MacroSheet или xlExcel4IntMacroSheet. Пример использования метода Worksheets.Add:

Создание нового рабочего листа

Sub CreateTempWorksheet()

'Создает временный лист и скрывает его

Application.ScreenUpdating = False

Worksheets.Add

With ActiveSheet

.Name = "Временный"

.Visible = False

End With

Application. ScreenUpdating = True

End Sub

Переименование рабочего листа

  • Имя рабочего листа - это тот текст, который появляется в строке заголовка листа.

  • Если нужно переименовать рабочий лист, то надо изменить свойство Name этого листа: Object. Name, где Object - это ссылка на рабочий лист, который будет переименован.

Копирование и перемещение рабочего листа

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

Object.Copy([Before] [After]) Object.Move([Before] [After])

  • где Object - объектная ссылка на рабочий лист, который требуется переместить или скопировать. Аргумент Before указывает на рабочий лист, перед которым находится копируемый или перемещаемый рабочий лист; аргумент After указывает на лист, после которого расположен подлежащий копированию или перемещению лист. (Нельзя использовать оба эти аргумента одновременно в одной и той же инструкции.) Если оба аргумента - и Before, и After - опущены, то VBA создаст новую рабочую книгу для скопированного или перемешенного листа.

Копирование и перемещение рабочего листа

Sub CreateWorksheetAtEnd()

‘Создается новый лист в конце книги

Dim NewSheet As String

Application.ScreenUpdating = False

Worksheets.Add Before : =Worksheets (Worksheets .Count)

NewSheet = ActiveSheet.Name

With Worksheets (NewSheet)

.Move Aften:=Worksheets (Worksheets.Count)

.Activate

End With

Application. ScreenUpdating = True

End Sub

Удаление рабочего листа

  • Если приложение создает временные рабочие листы для хранения промежуточных результатов, то их необходимо удалять.

  • Для удаления рабочих листов используется метод Delete:

Object.Delete,

  • где Object является ссылкой на объект Worksheet, который требуется удалить.

Удаление рабочего листа

Sub DeleteTemporarySheets()

'Удаляются все временные листы

Dim Sheet As Worksheet

Application.DisplayAlerts = False

For Each Sheet In Workbooks (“Продажа.xls").Worksheets

If InStr (I, Sheet.Name, "Временный") Then

SheetDelete

End If

Next Sheet

Application.DisplayAlerts =True

End Sub

Методы для обращения к диапазону ячеек

  • При работе в Excel, прежде чем выполнять обработку данных, нужно сначала выделить ячейку или диапазон рабочего листа. Аналогично в программе VBA необходимо сослаться на диапазон листа перед тем, как применить по отношению к нему какую-либо операцию.

  • Для этого используется один из наиболее общих из всех объектов Excel - объект Range.

  • Объект Range может быть простой ячейкой, строкой или столбцом таблицы, выделенными ячейками или даже трехмерным диапазоном (т.е. диапазоном, который включает выделенные ячейки более чем на одном рабочем листе).

Использование метода Range

  • Использование метода Range - самый простой способ идентификации ячейки или диапазона ячеек.

  • Этот метод имеет синтаксис:

Object.Range(Name),

  • где Object является ссылкой на объект Worksheet, который содержит рассматриваемый диапазон.

  • Если Object не используется, VBA предполагает, что метод применяется к активному объекту ActiveSheet. Аргумент Name имеет текстовый тип и представляет собой ссылку на ячейку или диапазон ячеек.

  • Метод Range работает также с именованными ячейками и диапазонами.

Использование метода Range

Sub FormatRangeFont()

'Устанавливает шрифт в диапазоне ячеек с помощью метода Range

With Worksheets(“Лист1")

. Range ("A1:L1”).Font.Size=24

. Range ("A 1:L1"). FontBold=True

. Range ("A 1:L1"). Font.Name= "Times New

Roman"

End With

End Sub

Список наиболее часто применяемых свойств объекта Font

  • Object.Font.Bold - включает (True) или отключает (False) полужирный стиль шрифта;

  • Object.Font.Italic - включает (True) или отключает (False) курсивный стиль шрифта;

  • ObjectFontUnderline - включает или отключает подчеркивание; значение свойства Underline может быть любым из этих зарезервированных констант (определенных в классе xlUnderlineStyle): xlUnderlineStyleNone, xlUnderlineStyleSingle, xlUnderline-StyleDouble, xlUnderlineStyleSingle-AcCouning или xlUnderlineStyleDoubleAcCounting;

  • Object.Font.Name - устанавливает имя типа шрифта. Можно указывать значение свойства Name как текстовую строку, например "Arial";

  • Object .Font.Size - устанавливает размер шрифта.

Обращение к диапазону ячеек

  • При обращении к диапазону ячеек целесообразно использовать альтернативный синтаксис метода Range, который требует двух аргументов:

Object.Range(Cell1,Cell2),

  • где Object является ссылкой на объект Worksheet, который содержит выделяемый диапазон. Аргумент Сеll1 определяет ячейку верхнего левого угла, а Сеll2 - ячейку нижнего правого угла выделяемого диапазона. Каждый их них имеет текстовый тип

  • Например, инструкция

Worksheets(“Лист1”).Range(“A3", "C4").VaIue = 2

  • заполняет диапазон АЗ:С4 цифрами 2.

  • Инструкции

Worksheets (“Лист).Range(“A:A").Value=2

Worksheets (" Лист ").Range(" 4:4 ").Value=2

  • заполняют цифрами 2 столбец А и строку с номером 4 соответственно.

Использование метода Cell

  • Метод Cells позволяет определять ячейки, придает программе большую гибкость:

Object.Cells(RowIndex, Columnlndex),

  • где Object -ссылка на объект Range или Worksheet, содержащий определяемую ячейку.

  • Если ссылка опущена, метод применяется к активному объекту ActiveSheet.

  • Аргумент Rowlndex представляет собой номер строки, в которой находится ячейка. Если Object является рабочим листом, то значение Rowlndex = 1 ссылается на первую строку этого листа; если же Object -диапазон, то Rowlndex =1 ссылается на первую строку этого диапазона.

Использование метода Cell

  • Аргумент Columnlndex представляет собой столбец, в котором находится рассматриваемая ячейка. Его значением может быть либо буква (литеральная константа или строковая переменная), либо номер, указывающий на столбец.

  • Если Object - рабочий лист, то значение
    Columnlndex = “А" или 1 ссылается на столбец А этого листа;
    если же Object - диапазон, то Columnlndex = "А" или 1 ссылается на первый столбец этого диапазона.

Использование метода Cell

Sub WriteNewData()

'Вносятся данные из формы пользователя в лист

Dim I As Integer, DBNewRow As Integer, NewRange As String

With Range("Database")

'переход на новую строку

DBNewRow = .Row + .Rows.Count

'Ввод данных из формы в ячейки новой строки

For I = 1 То .Columns.Count

.Cells(DBNewRow, (I + .Column) -1).Value = Listing13Form.Controls("txt" &

CStr(I)).Text

Next I

'Расширение диапазона Database

NewRange= "=" & .Parent.Name & "!"

NewRange = NewRange & Cells(.Row,.Column).Address&”:”

NewRange = NewRange & Cells(DBNewRow, (.Column +.Columns.Count) -1).

Address

Names("Database").RefersTo = NewRange

End With

End Sub

Использование метода Offset

  • При определении Range-объектов часто бывают ситуации, когда необходимо сослаться на ячейку, расположенную на две строки ниже и на один столбец правее активной ячейки. В этом случае можно найти адрес активной ячейки и затем вычислить координаты требуемой ячейки, но VBA Excel предоставляет другой вариант решения этой задачи - метод Offset, который возвращает объект Range, смещенный относительно конкретной ячейки на заданное количество строк и столбцов:

Object.Offset([RowOffset] [, CoiumnOffset]),

  • где Object - это ссылка на исходный Range-объект.

  • Аргумент RowOffset представляет собой количество строк смещения относительно Object. При этом можно использовать положительное число (смещение вниз), отрицательное число (смещение вверх) или нуль (смещение отсутствует, т.е. искомая ячейка располагается в той же строке). Если этот аргумент опущен, то по умолчанию он принимает значение О,

Использование метода Offset

  • Аргумент ColumnOffset - это количество столбцов смещения относительно объекта Object. Для его задания можно использовать положительное число (смещение вправо), отрицательное число (смещение влево) или нуль (смещение отсутствует). Если значение этого аргумента не указано, по умолчанию оно принимает значение 0.

Использование метода Offset

Sub SelectData()

‘Выделяются данные в диапазоне

Dim DBRows As Integer

Worksheets(“Лист1").Select

With Range(“Database")

DBRows = .Rows.Count

.Offset(1, 0).Resize(DBRows - 1,

.Columns.Count).Select

End With

End Sub

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

  • Методы Range, Cells и Offset являются наиболее общими, но не единственными для получения объектов Range, например можно использовать метод Resize для указания диапазона ячеек.

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

  • [cellRef] может указать единственную ячейку путем заключения ссылки на эту ячейку в квадратные скобки.

  • метод Object.Row(Index) возвращает строку на рабочем листе или в диапазоне, на который ссылается объект Object. Если такое указание отсутствует (т.е. Object опущен), VBA по умолчанию будет ссылаться на активный лист. Index представляет собой номер строки. Если объектом является рабочий лист, значение Index, равное 1, ссылается на первую строку этого листа; если же объект - диапазон, то возвращается ссылка на первую строку диапазона;

  • свойство Object.EntireRow возвращает всю строку или строки, содержащиеся в указанном объектом Object диапазоне;

  • метод Object.Column(Index) возвращает столбец на рабочем листе или в диапазоне, указанном объектом Object. Если Object опущен, VBA по умолчанию использует активный лист. Index - номер столбца, который может быть числом или буквой. Если объектом является рабочий лист, значение Index, равное "А" или 1, ссылается на столбец А листа; если же объект - диапазон, то возвращается ссылка на первый столбец этого диапазона;

  • свойство Object.EntireColumn возвращает весь столбец или столбцы, содержащиеся в указанном объектом Index диапазоне;

  • свойство Object.CurrentRegkm возвращает текущую область диапазона Object, которая определяется как область, окружающая текущую ячейку или диапазон и ограниченная сверху и снизу пустыми строками, а справа и слева - пустыми столбцами.

Выбор ячейки или диапазона

  • Для выбора ячейки или диапазона ячеек используется метод Select: Object-Select, где Object - ссылка на объект Range, который надо выбрать (выделить).

Sub CreateChart()

‘Создает диаграмму на основе данных в диапазоне Sales

WithWorkbooks("Пpoдaжи.xls”)

.Worksheets("Лиcт2'').Activate

.Range(“Покупки"). Select

End With

Charts.Add

End Sub

  • Если нужно считать содержимое ячейки, или требуется вывести данные в ячейку или диапазон, можно использовать два свойства объекта Range: Value и Formula.

  • Синтаксис этих свойств следующий: Object. Value и Object.Formula. В обоих случаях Object представляет собой ссылку на объект Range. Для получения содержимого ячейки следуйте указаниям:

  • если считывается (выводится) значение, помещенное в ячейку, используйте свойство Value. Например, если в ячейке А1 содержится формула =2*2, то выражение Range("A1").Value вернет значение 4;

  • если надо работать с содержащейся в ячейке формулой, используйте свойство Formula. Например, если ячейка А1 содержит формулу =2*2, то выражение Range("A1").Formula вернет текстовую строку "=2*2".

Sub CreateLoanPmtCalculator()

'Строит на листе ЛистЗ расчет арендной платы

Worksheets ("ЛистЗ ").Select

With Range(“A1")

'Надписываем ячейки

.Value= "расчет выплат по ссуде "

.Font.Bold =Тruе

.Font.Italic=True

.Font.Size = 18

.Offset(1).Value = "Rate"

.Offset(2), Value = "Period"

.Offset(3).Value = "Amount"

.Offset(5).Value = "Payment"

End With

'Вводим формат ячеек и формулу

With Range(“A1”)

.Offset(1, 1).NumberFormat = "0.00%”

.Offset(3, 1).NumberFormat = “($#,##0);[Red]($#,##0)"

.Offset(5, 1).NumberFormat = “($#,##0.00 );[Red]($#,##0.00)"

.Offset(5, 1).Formula = “=PMT($B$2/12, $B$3*12, $B$4)"

End With

End Sub