Altera a caixa de nome de uma imagem inserida na planilha do Excel

0

Quando você insere uma imagem em uma planilha do Excel, obtém automaticamente a Figura 1, a Figura 2 e assim por diante ... Tenho uma função quando uma imagem é selecionada para colocar a borda preta em volta dela. O problema é que, se eu tiver duas imagens na planilha que é denominada Imagem 1, a função não saberá qual imagem 1 para colocar a borda ao redor, portanto, poderá colocar borda ao redor da imagem selecionada incorreta.

Aqui está o meu código para colocar borda na imagem:

Private Function AddImageBorder(WhichSheet As String)

With ActiveWorkbook.Sheets(WhichSheet).Shapes(Selection.Name)
    .Line.Weight = 5
    .Line.Visible = msoTrue
End With

Função final

    
por user582635 13.04.2016 / 20:40

1 resposta

0

Acho que uma solução simples para isso seria renomear suas imagens. Como você obtém dois "Picture1" está além de mim, eu tive que renomear um no VBA. De qualquer forma aqui é uma maneira de numerar suas formas para que nenhuma se sobreponha -

Sub NumberShapes()
    Dim shp As Shape
    Dim i As Long
    i = 1
    For Each shp In ActiveSheet.Shapes
        shp.Name = "Picture" & i
        i = i + 1
    Next
End Sub

Pessoalmente, eu faria de forma diferente identificando o que é primeiro.

Option Explicit

Public Sub NumberShapes()
    Dim shp As Shape
    Dim i As Long
    i = 1
    For Each shp In ActiveSheet.Shapes
    If shp.Type = msoPicture Then
        shp.Name = "Picture" & i
        i = i + 1
    ElseIf shp.Type = msoChart Then
        shp.Name = "Chart" & i
        i = i + 1
    ElseIf shp.Type = msoTextBox Then
        shp.Name = "Textbox" & i
        i = i + 1
    End If
    Next
End Sub

Com essa solução, você decide o que é chamado com base no tipo de é.

    
por 14.04.2016 / 13:13