Определение типа данных, хранимых в ячейке
Объект 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!