Определение типа данных, хранимых в ячейке



Объект Application обладает большой коллекцией свойств вида isTypename, позволяющих идентифицировать тип значения. Код в листинге 5.44 демонстрирует, как эти свойства можно использовать для индикации типов данных, введенных в ячейки диапазона А1:А10.

Листинг 5.44. Определение типа данных, хранимых в ячейке

Sub ScanColumn()

For Each c In Worksheets(1).Range("Al:A10").Cells

If Application.IsText(c.Value) Then

c.Offset(0, 1).Formula = "Text"

Elself Application.IsNumber(с.Value) Then

c.Offset(0, 1).Formula = "Number"

Elself Application.IsLogical(c.Value) Then

с Offset(0, 1).Formula = "Boolean"

Elself Application.IsError(c.Value) Then

с Offset(0, 1).Formula = "Error"

Elself c.Value = "" Then

с Offset(0, 1).Formula = "(blank cell)"

End If

Next с

End. Sub

Объект Characters

Свойство Characters объекта Range или Selection возвращает объект Characters, представляющий собой строку указанной длины от указанного символа. Часто применяется, когда надо форматировать содержание не всей строки, а только ее часть.

Characters(Start, Length)

Здесь:

r Start, — необязательный параметр, задающий номер первого возвращаемого символа из данной строки;

r Length — необязательный параметр, указывающий число возвращаемых символов.

В следующем примере (листинг 5.45) в ячейку А1 выводится строка "Андрей Гарнаев", причем первая часть этой строки "Андрей" выводится полужирным шрифтом зеленого цвета высотой 16, а вторая ее часть "Гарнаев" — курсивным шрифтом красного цвета высотой 14. Кроме того, в рабочий лист вставляется автофигура с текстовым полем, в которое выводится тот же текст так же отформатированный по словам. Автофигура заполняется градиентной заливкой, а вокруг нее создается тень. Текстовое поле делается прозрачным (рис. 5.4).

Листинг 5.45. Форматирование части содержимого ячейки и создание автофигуры

Sub DrawText ()

With Range ("A1")

.Value = "Андрей Гарнаев"

.Characters(1, 6).Font.Bold = True

.Characters(1, 6).Font.Size = 16

.Characters(1, 6).Font.Color = RGB(0, 255, 0)

.Characters(8, 7).Font.Italic = True

.Characters(8, 7).Font.Size = 14

.Characters(8, 7).Font.Color = RGB(255, 0, 0)

End With

ActiveSheet.Shapes.AddShape(msoShapeExplosionl, _

Range("A2").Left, Range("A2").Top, _

Range("F20").Left, Range("F20").Top).Select Selection.ShapeRange.Fill.ForeColor.SchemeColor = 52 Selection.ShapeRange.Fill.BackColor.SchemeColor = 43 Selection.ShapeRange.Fill.TwoColorGradient msoGradientHorizontal, 1

Selection.ShapeRange.Shadow.Type = msoShadow1

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,_

Range("B9:C13").Left, Range("B9:C13").Top, _

Range("B9:C13").Width, Range("B9:C13").Height).Select

Selection.ShapeRange.Fill.Visible = msoTrue

Selection.ShapeRange.Fill.Transparency = 1#

Selection.HorizontalAlignment = xlCenter

Selection.VerticalAlignment = xlCenter

Selection.Characters.Text = "Андрей Гарнаев"

Selection.ShapeRange.Line.Visible = msoFalse

Selection.Characters.Text = "Андрей Гарнаев"

With Selection.Characters(Start:=1, Length:=7).Font

.Name = "Comic Sans MS"

.FontStyle = "полужирный курсив"

.Size = 14

.Colorlndex = 5

End With

With Selection.Characters(Start:=8, Length:=7).Font

.Name = "Comic Sans MS"

.FontStyle = "полужирный"

.Size = 14

.Colorlndex = 8

End With

Range("A1").Select

 

End Sub

Рис. 5.4. Форматирование части содержимого ячейки

Объект Comment

Свойство Сomment объекта Range возвращает объект Сomment (примечание), который при отображении на экране связан с правым верхним углом диапазона. Вручную на рабочем листе примечание добавляется к диапазону выбором команды Вставка ► Примечание .

Вкоде примечание можно создать методом AddComment объекта Range.

AddComment(Text )

Здесь Text — текст, вводимый в примечание. Объект Сomment является элементом семейства Comments. В табл. 5.19 перечислены свойства объекта Comment, а в табл. 5.20 — его методы.


Таблица 5.19. Свойства объекта Сomment

Свойство Описание
Author Shape Возвращает автора примечания Возвращает объект Shape, задающий форму примечания
Parent Возвращает ссылку на диапазон, для которого примечание было создано
Visible Устанавливает, отображается ли примечание при активизации диапазона

Таблица 5.20. Методы объекта Сomment

Свойство Описание
Delete Удаляет примечания
Next Возвращает следующее примечание
Previous Возвращает предыдущее примечание
Text Возвращает текст, отображаемый в примечании

Итак, метод Text задает текст, выводимый в примечании.

Text(Text, Start, Overwrite) Здесь:

r Text — необязательный параметр, который задает текст, выводимый в качестве примечания;

r Start — необязательный параметр, который определяет, с какого символа вводится текст в уже существующее примечание. Если параметр опущен, то из примечания удаляется весь ранее введенный текст;

r Overwrite — необязательный параметр, принимающий логические значения. Если он равен True, то вводимый текст записывается вместо уже существующего, а если False, то добавляется к уже существующему.

В качестве примера рассмотрим следующую процедуру обработки события Open объекта Workbook, который при открытии рабочей книги в ячейке G4 первого рабочего листа создает комментарий (листинг 7.46, а). При этом, если в этой ячейке уже существовал комментарий, то он удаляется и затем создается по-новому. Процедура же обработки события BeforeDoubieClick объекта Worksheet обеспечивает отображение или скрытие примечания при двойном щелчке на листе (листинг 7.46, б).

Листинг 7.46, а. Создание примечания при открытии книги.

Модуль ЭтаКнига

Private Sub Workbook_Open()

Set r = Worksheets(1).Range("G4").Comment

If Not IsObject(r) Then

Worksheets(1).Range("G4").Comment.Delete

End If

Worksheets(1).Range("G4").AddComment Text:="Очень важно!"

End Sub

Листинг 7.46, 6. Отображение или скрытие примечания при двойном щелчке на листе.

Модуль рабочего листа

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _

Cancel As Boolean)

If Range("G4").Comment.Visible Then

Range("G4").Comment.Visible = False

Else

Range("G4").Comment.Visible = True

End If

End Sub

В качестве еще одного примера приведем процедуру, которая считывает все примечания из данной рабочей книги и выводит их в текстовый файл (листинг 5.47).

Sub WriteCommentsToFile()

Dim cmt As Comment

Dim sh As Worksheet

Open "C:\Test.txt" For Output As #1

For Each sh In ActiveWorkbook.Worksheets

For Each cmt In ActiveWorkbook.Worksheets(sh.Name).Comments

Print #1, "Из " & cmt.Parent.Parent.Name _

& "!" & cmt.Parent.Address _

& " примечание: " _

& cmt.Text

Next

Next

Close #1

End Sub


Дата добавления: 2019-02-12; просмотров: 171; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!