Como usar wrap text em qualquer lugar via vba?
No VBA, existe uma propriedade chamada “WrapText” que você pode acessar para aplicar quebra automática de texto a uma célula ou intervalo de células. Você tem que escrever código para habilitá-lo ou desabilitá-lo. É uma propriedade de leitura e gravação, então você pode aplicá-la ou também obtê-la se for aplicada em uma célula.
Neste tutorial, veremos diferentes maneiras de aplicar quebra automática de texto usando código VBA.
Quebrar texto em uma célula usando VBA
Use as etapas a seguir para aplicar Wrap Text usando código VBA.
- Defina a célula onde deseja aplicar a quebra automática de texto usando a propriedade range .
- Digite um ponto final para ver a lista de propriedades e métodos dessa célula.
- Selecione a propriedade “WrapText” na lista.
- Insira o sinal de igual “=” e digite TRUE para ativar a quebra automática de palavras.
Sub vba_wrap_text() Range("A1").WrapText = True End Sub
Você também pode especificar uma célula da seguinte maneira.
Cells(1, 1).WrapText = True
Quebrar o texto em uma linha de células
E se quiser aplicar quebra automática de texto a um intervalo inteiro, você precisa especificar o intervalo em vez de uma única célula.
Range("A1:A5").WrapText = True
Você também pode aplicá-lo ao intervalo utilizado (seleção da planilha onde inseriu os dados) utilizando a propriedade “UsedRange”.
Worksheets("Sheet1").UsedRange.WrapText = True ActiveSheet.UsedRange.WrapText = True
Na primeira linha do código acima, você especificou a Planilha e depois a “UsedProperty” para quebrar o texto. Na segunda linha você tem o intervalo utilizado da planilha ativa . Mas ambas as linhas funcionam da mesma forma.
Aqui estão mais alguns exemplos que você deve saber:
- Células não contínuas
- Linha inteira
- Coluna inteira
- Intervalo nomeado
Range("A1:A10,C1:C10").WrapText = True Range("A:A").WrapText = True Range("1:1").WrapText = True Range("myRange").WrapText = True
Quebrar o texto em toda a planilha
Para se referir à planilha inteira, você precisa usar a propriedade Cells como no código a seguir.
Cells.WrapText = True Worksheets("Sheet1").Cells.WrapText = True
A primeira linha de código refere-se à planilha ativa e a segunda linha refere-se à planilha “Planilha1”. Você também pode usar um loop usando FOR EACH (For Next) para percorrer todas as planilhas da pasta de trabalho e aplicar quebra automática de texto a todas as células.
Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Cells.WrapText = True Next ws
No código acima, você tem “ws” como uma variável , então For Each Loop percorre todas as planilhas da pasta de trabalho e se aplica para quebrar o texto de toda a planilha usando Células.
Desativar WrapText
Como você viu, você precisa habilitar a propriedade WrapText e da mesma forma você pode desabilitá-la usando add declarando FALSE.
Range("A1").WrapText = False
Nota: Há uma coisa que você precisa entender se você tiver um valor em uma célula e a largura da célula for suficiente para armazenar esse valor, mesmo se você aplicar texto à linha, o Excel não moverá o conteúdo para a próxima linha .