Objeto Shape (Project)
Representa um objeto em um relatório do Project, como um gráfico, uma tabela de relatório, uma caixa de texto, um desenho de forma livre ou uma imagem.
O objeto Shape é um membro da coleção Shapes , que inclui todas as formas do relatório.
Observação
A gravação de macro para o objeto Shape não é implementada. Ou seja, quando você grava uma macro no Project e adiciona manualmente uma forma ou edita elementos de forma, as etapas para adicionar e manipular a forma não são registradas.
Há três objetos que representam formas: a coleção Shapes , que representa todas as formas em um documento; o objeto ShapeRange , que representa um subconjunto especificado das formas em um documento (por exemplo, um objeto ShapeRange pode representar formas um e quatro no documento, ou pode representar todas as formas selecionadas no documento); e o objeto Shape , que representa uma única forma em um documento. Se você deseja trabalhar com várias formas ao mesmo tempo ou com formas dentro da seleção, use uma coleção ShapeRange.
Use Shapes(Index)
, em que Index é o nome da forma ou o número do índice, para retornar um único objeto Shape .
No exemplo a seguir, a macro TestTextShape cria uma forma de caixa de texto, adiciona alguns textos e altera as propriedades de estilo, preenchimento, linha, sombra e reflexão de forma. A macro FlipShape inverte a forma de cima para baixo.
Sub TestTextShape()
Dim theReport As Report
Dim textShape As Shape
Dim reportName As String
reportName = "Simple scalar chart"
Set theReport = ActiveProject.Reports(reportName)
Set textShape = theReport.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 300, 100)
textShape.Name = "TestTextBox"
textShape.TextFrame2.TextRange.Characters.Text = "This is a test. It's only a test. " _
& "If it had been real information, there would be some real text here."
textShape.TextFrame2.TextRange.Characters(1, 15).ParagraphFormat.FirstLineIndent = 0
' Set the font for the first 15 characters to dark blue bold.
With textShape.TextFrame2.TextRange.Characters(1, 15).Font
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent5
.Fill.Transparency = 0
.Fill.Solid
.Size = 14
.Bold = msoTrue
End With
textShape.ShapeStyle = msoShapeStylePreset42
With textShape.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 0)
.Transparency = 0
'.Solid
End With
With textShape.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
End With
textShape.Shadow.Type = msoShadow22
textShape.Reflection.Type = msoReflectionType3
End Sub
Sub FlipShape()
Dim theReport As Report
Dim theShape As Shape
Dim reportName As String
Dim shapeName As String
reportName = "Simple scalar chart"
shapeName = "TestTextBox"
Set theShape = ActiveProject.Reports(reportName).Shapes(shapeName)
theShape.Flip msoFlipVertical
theShape.Select
End Sub
A Figura 1 mostra o resultado, em que a forma é selecionada para disponibilizar a guia FORMATO da faixa de opções em FERRAMENTAS DE DESENHO , embora a guia ativa seja DESIGN em FERRAMENTAS DE RELATÓRIO. Se a forma não estivesse selecionada, AS FERRAMENTAS DE DESENHO e a guia FORMAT não estariam visíveis.
Figura 1. Testing the Shape object model
Nome |
---|
Apply |
Copy |
Cut |
Delete |
Duplicate |
Flip |
IncrementLeft |
IncrementRotation |
IncrementTop |
PickUp |
RerouteConnections |
ScaleHeight |
ScaleWidth |
Select |
SetShapesDefaultProperties |
Ungroup |
ZOrder |
Objeto Gráficode Objeto de Relatório
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.