Compartilhar via


Método Shapes.Range (Project)

Retorna um objeto ShapeRange que representa um subconjunto de formas na coleção Shapes .

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 Variantes Especifica uma ou mais formas a serem incluídas no intervalo. Pode ser um inteiro para o número de índice de uma forma, uma cadeia de caracteres para o nome de uma forma ou uma matriz que contém inteiros ou cadeias de caracteres.
Índice Obrigatório Variantes
Nome Obrigatório/Opcional Tipo de dados Descrição

Valor de retorno

ShapeRange

O intervalo de formas especificadas pelo parâmetro Index .

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 você possa usar a propriedade Range para retornar qualquer número de formas em um relatório, é mais simples usar a propriedade Value padrão para retornar uma única Forma na coleção. Por exemplo, Shapes(1) é mais simples do que Shapes.Range(1).

Para especificar uma matriz de inteiros ou cadeias de caracteres para o parâmetro Index , você pode usar a função Matriz . Por exemplo, a macro a seguir seleciona duas formas 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 você criar um relatório com duas caixas de texto, como no código anterior, a macro a seguir selecionará as caixas de texto por número de índice e adicionará 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 do Objeto ShapeRange de 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.