Partilhar via


Shapes.Range method (Project)

Devolve um objeto ShapeRange que representa um subconjunto de formas na coleção Formas .

Sintaxe

expressão. Intervalo (Índice)

expressão Uma variável que representa um objeto Formas.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Índice Obrigatório Variant Especifica uma ou mais formas a incluir no intervalo. Pode ser um número inteiro para o número de índice de uma forma, uma cadeia para o nome de uma forma ou uma matriz que contém números inteiros ou cadeias.
Índice Obrigatório Variant
Nome Obrigatório/Opcional Tipo de dados Descrição

Valor de retorno

ShapeRange

O intervalo de formas especificado pelo parâmetro Índice .

Comentários

Observação

A maioria das operações que você pode fazer com que um objeto Shape você também pode fazer com um objeto ShapeRange que contém uma única forma. Algumas operações, quando executadas em um objeto ShapeRange que contém várias formas, gerar um erro.

Embora possa utilizar a propriedade Intervalo para devolver qualquer número de formas num relatório, é mais simples utilizar a propriedade Valor predefinida para devolver uma única Forma na coleção. Por exemplo, Shapes(1) é mais simples do que Shapes.Range(1).

Para especificar uma matriz de números inteiros ou cadeias para o parâmetro Índice , pode utilizar a função Matriz . Por exemplo, a seguinte macro seleciona duas formas que são especificadas pelo nome.

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

Exemplo

Se criar um relatório com duas caixas de texto, como no código anterior, a seguinte macro seleciona as caixas de texto por número de índice e, em seguida, adiciona uma sombra a cada uma delas.

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

Confira também

Objeto ShapeRange deObjeto formas

Suporte e comentários

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.