Compartir a través de


Cómo: trabajar con formas (objetos de dibujo)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Las formas, u objetos de dibujo, están representadas por tres objetos diferentes: las colecciones Shapes y ShapeRange, así como el objeto Shape. En general, la colección Shapes se usa para crear formas y cuando se desea recorrer en iteración todas las formas de una diapositiva, el objeto Shape se usa para modificar una única forma y la colección ShapeRange, para modificar varias formas de la misma manera que se puede trabajar con varias formas seleccionadas en la interfaz de usuario.

Establecer las propiedades de una forma

Muchas propiedades de formato de las formas no se establecen con propiedades que se apliquen directamente a los objetos Shape o ShapeRange. En su lugar, los atributos de forma relacionados se agrupan en objetos secundarios, como el objeto FillFormat, que contiene todas las propiedades relacionadas con el relleno de la forma, o el objeto LinkFormat, que contiene todas las propiedades que son exclusivas de los objetos OLE vinculados. Para establecer las propiedades de una forma, en primer lugar debe devolver el objeto que representa el conjunto de atributos de forma relacionados y, a continuación, establecer las propiedades del objeto devuelto. Por ejemplo, la propiedad Fill se usa para devolver el objeto FillFormat y, a continuación, se establece la propiedad ForeColor del objeto FillFormat para establecer el color de primer plano del relleno de la forma especificada, como se muestra en el ejemplo siguiente.

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Aplicar una propiedad o un método a varias formas al mismo tiempo

En la interfaz de usuario, hay algunas operaciones que pueden realizarse con varias formas seleccionadas; por ejemplo, se pueden seleccionar varias formas y establecer el relleno de cada una al mismo tiempo. Hay otras operaciones que sólo pueden llevarse a cabo con una única forma seleccionada; por ejemplo, sólo se puede modificar el texto de una forma si una única forma está seleccionada.

En Visual Basic existen dos modos de aplicar propiedades y métodos a un grupo de formas. Con estos dos modos es posible realizar cualquier operación que sea posible con una sola forma en un intervalo de formas, independientemente de que se pueda realizar la misma operación en la interfaz de usuario.

  • Si la operación funciona con varias formas seleccionadas en la interfaz de usuario, puede realizar la misma operación en Visual Basic creando una colección ShapeRange que contenga las formas con las que desea trabajar y aplicando las propiedades y los métodos correspondientes directamente a la colección ShapeRange.

  • Si la operación no funciona con varias formas seleccionadas en la interfaz de usuario, puede realizar la operación en Visual Basic recorriendo la colección Shapes o a través de una colección ShapeRange que contenga las formas con las que desee trabajar y aplicando las propiedades y los métodos correspondientes directamente a cada uno de los objetos Shape de la colección.

La mayoría de las propiedades y métodos que se pueden aplicar al objeto Shape y a la colección ShapeRange producen un error si se aplican a cierto tipo de formas. Por ejemplo, la propiedad TextFrame produce un error si se aplica a una forma que no puede contener texto. Si no está seguro de si a las formas de una colección ShapeRange se les puede aplicar una propiedad o un método determinados, no aplique la propiedad o el método a la colección ShapeRange. Si desea aplicar una de estas propiedades o uno de estos métodos a una colección de formas, debe recorrer la colección y comprobar cada una de las formas para asegurarse de que es un tipo de forma adecuado antes de aplicarle la propiedad o el método.

Aplicar una propiedad o un método a una colección ShapeRange

Si es posible realizar una operación con varias formas seleccionadas en la interfaz de usuario al mismo tiempo, puede hacerlo mediante programación si crea una colección ShapeRange y, a continuación, le aplica las propiedades o los métodos correspondientes. En el siguiente ejemplo, se crea un intervalo de formas que contiene las autoformas denominadas "Big Star" (Gran estrella) y "Little Star" (Pequeña estrella) en

myDocument

y se les aplica un relleno de degradado.

Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
    .Range(Array("Big Star", "Little Star"))
myRange.Fill.PresetGradient msoGradientHorizontal, _
    1, msoGradientBrass

A continuación se presentan instrucciones generales del comportamiento de las propiedades y los métodos cuando se aplican a una colección ShapeRange.

  • Aplicar un método a una colección es equivalente a aplicarlo a cada objeto Shape de dicha colección.

  • Establecer el valor de una propiedad de la colección es equivalente a establecer el valor de la propiedad de cada forma del intervalo.

  • Una propiedad de la colección que devuelve una constante devuelve el valor de la propiedad de una forma individual de la colección si todas las formas de ésta tienen el mismo valor para dicha propiedad. Si no todas las formas de la colección tienen el mismo valor para la propiedad, devuelve la constante "mixed".

  • Una propiedad de la colección que devuelve un tipo de datos simple, como Long, Single o String, devuelve el valor de la propiedad de una forma si todas las formas de la colección tienen el mismo valor para dicha propiedad.

  • El valor de algunas propiedades puede devolverse o establecerse sólo si hay exactamente una forma en la colección. Si hay varias, se produce un error en tiempo de ejecución. Normalmente ocurre al devolver o establecer propiedades cuando la acción equivalente en la interfaz de usuario sólo puede realizarse con una única forma, por ejemplo, acciones como la modificación del texto de una forma o de los puntos de una forma libre.

Estas instrucciones también pueden aplicarse cuando se establecen propiedades de formas que están agrupadas en objetos secundarios de la colección ShapeRange, como el objeto FillFormat. Si el objeto secundario representa operaciones que pueden realizarse en una selección de varios objetos en la interfaz de usuario, podrá devolver el objeto de una colección ShapeRange y establecer sus propiedades. Por ejemplo, puede utilizar la propiedad Fill para devolver el objeto FillFormat que representa los rellenos de todas las formas de la colección ShapeRange. Al establecer las propiedades del objeto FillFormat se establecen las mismas propiedades para todas las formas de la colección ShapeRange.

Recorrer una colección Shapes o ShapeRange

Aunque no pueda realizar una operación al mismo tiempo con varias formas en la interfaz de usuario, seleccionándolas y usando un comando, puede ejecutar la acción equivalente mediante programación si recorre la colección Shapes o una colección ShapeRange que contenga las formas con las que desee trabajar y si aplica las propiedades y los métodos correspondientes a cada uno de los objetos Shape de la colección. En el ejemplo siguiente, se recorren todas las formas de

myDocument

y agrega texto a cada forma que sea una autoforma.

Set myDocument = ActivePresentation.Slides(1)
For Each sh In myDocument.Shapes
    If sh.Type = msoAutoShape Then
            sh.TextFrame.TextRange.InsertAfter " (version 1)"
    End If
Next

En el siguiente ejemplo, se crea una colección ShapeRange que contiene todas las formas actualmente seleccionadas en la ventana activa y se establece el texto de cada forma de la colección que lo admita.

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Alinear, distribuir y agrupar formas en un intervalo de formas

Use los métodos Align y Distribute para colocar un conjunto de formas tomándolas a ellas mismas como referencia o con respecto al documento que las contiene. Use los métodos Group o Regroup para obtener una única forma agrupada a partir de un conjunto de formas.

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.