Compartir a través de


Método Shapes.Range (Project)

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

Sintaxis

expresión. Intervalo (í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 van a incluir en el intervalo. 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

Intervalo de formas que especifica el parámetro Index .

Observaciones

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 Range para devolver cualquier número de formas en un informe, es más sencillo usar la propiedad Value predeterminada 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 Index , puede usar la función Array . Por ejemplo, la siguiente macro 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 siguiente macro 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

ShapeRange (objeto ShapeRange) del objeto Shapes

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.