Método Shapes.Range (proyecto)

Devuelve un objeto ShapeRange que representa un subconjunto de formas de la colección Shapes .

Sintaxis

más sencilla.Rango (índice)

expresión Variable que representa un objeto Shapes.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Index Obligatorio Variant Especifica una o varias formas que se incluirán en el rango. Puede ser un entero para el número de índice de una forma, una cadena para el nombre de una forma o una matriz que contiene enteros o cadenas.
Índice Obligatorio Variant
Nombre Obligatorio/opcional Tipo de datos Descripción

Valor devuelto

ShapeRange

El rango de formas especificado por el parámetro INDICE .

Comentarios

Nota:

[!NOTA] Casi todas las operaciones que se pueden hacer con un objeto Shape también puede hacer con un objeto ShapeRange que contenga una única forma. Algunas operaciones, cuando se realizan en un objeto ShapeRange que contiene varias formas, producen un error.

Aunque puede usar la propiedad Rango para devolver cualquier número de formas en un informe, es más sencillo usar la propiedad de valor predeterminado para devolver una sola forma de la colección. Por ejemplo, Shapes(1) es más sencillo que Shapes.Range(1).

Para especificar una matriz de enteros o cadenas para el parámetro Índice , puede usar la función Matriz . Por ejemplo, la macro siguiente selecciona dos formas que se especifican por nombre.

Sub SelectShapeRange()
    Dim arShapes() As Variant
    Dim oShapeRange As ShapeRange
    
    arShapes = Array("TextBox 4", "TextBox 5")
    Set oShapeRange = ActiveProject.Reports("Table Tests").Shapes.Range(arShapes)
    oShapeRange.Select
End Sub

Ejemplo

Si crea un informe que tiene dos cuadros de texto, como en el código anterior, la macro siguiente selecciona los cuadros de texto por número de índice y, a continuación, agrega una sombra a cada uno de ellos.

Sub AddShadow2Shapes()
    Dim oReports As Reports
    Dim oReport As Report
    Dim oShapeRange As ShapeRange
    Dim reportName As String
    Dim arShapes() As Variant

    arShapes = Array(3, 4)

    reportName = "Table Tests"
    Set oReports = ActiveProject.Reports
    
    If (oReports.IsPresent(reportName)) Then
        ' Make the report the active view.
        oReports(reportName).Apply
        
        Set oReport = oReports(reportName)
        
        Set oShapeRange = oReport.Shapes.Range(arShapes)
        
        oShapeRange.Select
        oShapeRange.Shadow.Type = msoShadow1
    End If
End Sub

Vea también

Objeto Formas ObjetoShapeRange

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.