Encontre e nomeie uma caixa de texto em uma planilha usando o VBA

0

Cada folha da minha pasta de trabalho do Excel tem uma caixa de texto básica. Infelizmente, eles são nomeados de forma diferente a cada vez (Caixa de texto 1, Caixa de texto 17, etc.).

Eu tenho um código que encontra a caixa de texto 1 e a move. No entanto, existe alguma maneira no VBA para dizer "localizar caixa de texto na planilha ativa e nome caixa de texto 1". Ou existe alguma maneira de dizer "encontre alguma caixa de texto e faça alguma ação?"

Não consigo encontrar a maneira correta de usar o objeto / método Shapes.

Dim ws As Worksheet
Dim txBox As Shape

For Each ws In Worksheets
ws.Activate
    Set txBox = ws.Shapes("Text Box 1")
    txBox.IncrementLeft 200
Next ws
    
por RocketGoal 23.07.2013 / 11:03

2 respostas

1

Este código moverá todas as caixas de texto da pasta de trabalho para a direita.

Sub blah()
Dim ws As Worksheet
Dim txBox As Shape

For Each ws In Worksheets
    For Each txBox In ws.Shapes
        If txBox.Type = msoTextBox Then txBox.IncrementLeft 200
    Next txBox
Next ws
End Sub

Ele percorre a coleção Shapes em cada planilha. Em seguida, ele verifica se a forma é uma caixa de texto e, em seguida, a move se estiver. Não há necessidade de renomear as caixas de texto se você fizer isso dessa maneira.

    
por 24.07.2013 / 20:51
0
Sub SetTextBoxNames()
    Dim shp As Shape
    Dim ws As Worksheet

    For Each ws In Worksheets

        If ws.Shapes.Count <> 0 Then
            If ws.Shapes(1).Type = msoTextBox Then   'or = 17
                ws.Shapes(1).Name = "TextBox1"
                ws.Shapes(1).IncrementLeft 200
            End If
        End If
    Next ws
End Sub
    
por 23.07.2013 / 22:45