Classe FreeformBuilder - geometria de uma forma livre enquanto ela está sendo construída (Excel VBA)

A classe FreeformBuilder representa a geometria de uma forma livre enquanto ela está sendo construída. Para usar uma variável de classe FreeformBuilder, ela primeiro precisa ser instanciada por exemplo


Dim fbr as FreeformBuilder
Set fbr = Application.ActiveChart.Shapes

AddNodes

Adiciona um ponto na forma atual e, em seguida, desenha uma linha do nó atual para o último nó que foi adicionado.

MsoEditingType não pode ser msoEditingSmooth ou msoEditingSymmetric. Se segmenttype for msoSegmentLine, EditingType deve ser msoEditingAuto.

AddNodes (SegmentType, EditingType, X1, Y1, X2, Y2, X3, Y3)


Set myDocument = Worksheets(1) 
With myDocument.Shapes.BuildFreeform(msoEditingCorner, 360, 200) 
    .AddNodes msoSegmentCurve, msoEditingCorner, _ 
        380, 230, 400, 250, 450, 300 
    .AddNodes msoSegmentCurve, msoEditingAuto, 480, 200 
    .AddNodes msoSegmentLine, msoEditingAuto, 480, 400 
    .AddNodes msoSegmentLine, msoEditingAuto, 360, 200 
    .ConvertToShape 
End With

Arguments

O seguinte argumento é opcional

SegmentType (Office.MsoSegmentType) - O tipo de segmento a ser adicionado.

EditingType (Office.MsoEditingType) - A propriedade de edição do vértice.

X1 (Single) - Se o EditingType do novo segmento for msoEditingAuto, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o ponto final do novo segmento. Se o EditingType do novo nó for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o primeiro ponto de controle do novo segmento.

Y1 (Single) - Se o EditingType do novo segmento for msoEditingAuto, este argumento especificará a distância horizontal (em pontos) a partir do canto superior esquerdo do documento até o ponto final do novo segmento. Se o EditingType do novo nó for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o primeiro ponto de controle do novo segmento.

Optional arguments

Os seguintes argumentos são opcionais

X2 (Long) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

Y2 (Long) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

X3 (Long) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para este argumento.

Y3 (Long) - Se o EditingType do novo segmento for msoEditingCorner, este argumento especificará a distância horizontal (em pontos) do canto superior esquerdo do documento até o segundo ponto de controle do novo segmento. Se o EditingType do novo segmento for msoEditingAuto, não especifique um valor para esse argumento.

ConvertToShape

Cria uma forma que tem as características geométricas do objeto FreeformBuilder especificado. Retorna um objeto Shape que representa a nova forma.

Você deve aplicar o método AddNodes a um objeto FreeformBuilder pelo menos uma vez antes de usar o método ConvertToShape.


Dim shpConvertToShape As Shape
Set shpConvertToShape = ActiveChart.Shapes.BuildFreeform.ConvertToShape()