Организация документооборота с помощью "Visual Basic for Application"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
та.
Например, приведенный далее код ссылается на первое примечание листа Лист1 активной рабочей книги
Worksheets("Лист1").Comments(1)
Следующий оператор отображает текст, который содержится в первом примечании листа Лисг1:
MsgBox Worksheets("Лист1").Comments(1).Text
В отличие or большинства объектов, объект Comment не имеет свойства Name. Следовательно, чтобы сослаться на конкретный комментарий, используйте номер, а для получения необходимого комментария обратитесь к свойству Comment объекта Range .
Коллекция Comments тоже объект, имеющий собственный набор свойств и методов.
Например, следующий пример определяет общее количество комментариев:
MsgBox ActiveSheet.Comments.Count
В данном случае используется свойство Count коллекции Comments, в котором хранится количество объектов Comment на активном рабочем листе. В следующем примере показан адрес ячейки, содержащей первое примечание:
MsgBox ActiveSheet.Comments(1).Parent.Address
В этом примере Comments (1) возвращает первый объект Comment коллекции Comments. Свойство P a r e n t объекта Comment возвращает его контейнер, представленный объектом Range. В окне сообщений отображается свойство A d d r e s s объекта Range. В итоге оператор показывает адрес ячейки, содержащей первое примечание.
Кроме того, вы можете циклически просмотреть все примечания на листе, используя конструкцию For Each-Next . Ниже приведен пример использования отдельных окон для раздельного отображения каждого примечания активного рабочего листа:
For Each cmt in ActiveSheet.Comments
MsgBox cmt.Text
Next cmt
Если вы не хотите, чтобы на экране находилось большое количество диалоговых окон с сообщениями, то используйте следующую процедуру для вывода всех примечаний в одном окне Intermediate:
For Each cmt in ActiveSheet.Comments
Debug.Print cmt.Text
Next cmt
О свойстве Comment
В этом разделе речь идет об объекте Comment. В справочной системе указано, что объект Range обладает свойством Comment. Если ячейка содержит примечание, свойство Comment возвращает объект объект Comment. Например, следующий оператор ссылается на объект
Comment ячейки Al:
Range("Al").Comment
Если это первое примечание на листе, то на данный объект Comment можно сослаться следующим образом:
Comments(1)
Чтобы отобразить примечание ячейки Al в окне сообщения, используйте оператор MsgBox Range("Al").Comment.Text
Если в ячейке Al нет примечания, то оператор выдаст ошибку.
Тот факт, что свойство может возвращать объект, довольно важен (возможно, это сложно понять, но данная концепция имеет решающее значение в программировании на VBA).
Объекты, вложенные в Comment
Управление свойствами сначала кажется сложной задачей, потому что некоторые свойства возвращают объекты. Предположим, необходимо определить цвет фона конкретного примечания на листе Лист1. Просмотрев список свойств объекта Comment, вы не найдете ничего, что относится к определению цвета. Вместо этого выполните следующие действия.
1. Используйте свойство Shape объекта Comment, возвращающее объект Shape, который содержится в примечании.
2. Используйте свойство F i l l объекта Shape, возвращающее объект FillFormat
3. Используйте свойство ForeColor объекта FillFormat, возвращающее объект ColorFormat,
4. Используйте свойство RGB (или свойство SchemeColor) объекта ColorFormat, чтобы задать цвет.
Иначе говоря, получение цвета фона объекта Comment связано с доступом к другим объектам, которые в нем содержатся. Ниже описана иерархия задействованных объектов.
Application (Excel)
Workbook
Worksheet
Comment
Shape
FillFormat
ColorFormat
Следует предупредить, что в этом можно легко запутаться! Но в качестве примера "эле-
гантности" VBA посмотрите, как код для изменения цвета примечания можно записать с помощью одного оператора:
Worksheets("Лист1").Comments(1).Shape.Fill.ForeColor _
.RGB = RGB(0, 255, 0)
Вы вправе использовать также свойство SchemeColor (задаваемое в диапазоне от 0 до 80):
W o r k s h e e t s ( " Л и с т 1 " ) . C o m m e n t s ( 1 ) . S h a p e . F i l l _. F o r e C o l o r.SchemeColor = 12
В данном типе ссылки сразу трудно разобраться, но впоследствии несложно будет ориентироваться в иерархии объектов, так как в Excel при записи последовательности действий практически всегда вопрос иерархии задействованных объектов ставится на первом месте.
Смущают цвета?
Цвет, который вы задаете в коде VBA, не всегда соответствует тому, который появляется на экране. Ситуация всегда может усложниться еще больше. В зависимости от объекта, с которым вы работаете, где для задания цвета используются различные объекты и свойства.
Цвет объекта Shape можно задать с помощью свойства RGB или свойства SchemeColor.
Свойство RGB позволяет определить цвет в виде значений красного, зеленого и синего компонентов. Это свойство аналогично функции RGB, имеющей три аргумента, каждый из которых задается в диапазоне от 0 до 255. Функция RGB возвращает значение в диапазоне от 0 до 16777215. Но Excel может обрабатывать только 56 цветов. Поэтому фактический цвет, полученный при использовании функции RGB, будет самым точным соответствием заданному цвету из 56-цветовой палитры рабочей книги.
Свойство SchemeColor принимает значения от о до 80. В справочной системе вы не найдете ничего о том, что в действительности представляют собой эти цвета. Однако они ограничены образцами цветов на палитре рабочей книги.
При работе с цветами в объекте Range вам придется обратиться к его вложенному объекту I n t e r i o r . Вы можете задать цвет с помощью одного из свойств последнего: Color или Color Index. Корректные значения свойства Colorindex на