Descricao: |
Saberexcel - o site de quem precisa aprender Microsoft Excel VBA
Esse macro do Aplicativo Microsoft Excel VBA(Visual Basic Application), insere um Shapes(Autoforma) com determinadas medidas, na folha de planilha, contendo as palavras abaixo determinados pelo macro, fazendo um número de interações determinado pela constante Maximo_interacoes, essas palavras são repetidas no proprio shapes(autoforma), esses números de vezes que são determinados pelo loop ao número de interações desejadas. Observe que aproveitei o exemplo para inserir um contador na célula(A1) e nesta célula vinculei um tipo de barra de progressão bem interessante, ligada à uma Função
Public Sub Loop_insere_palavra_shapes()
Dim vPlans As Excel.Worksheet Dim vShapes As Shape Dim vFrame As TextFrame Dim i As Long
Const Incio_Texto As String = "Aprender VBA Saberexcel, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, " _ & "Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, " _ & "Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Prática, Treinamento é tudo no aprendizado!." Const Maximo_interacoes As Long = 200 MsgBox Len(Incio_Texto)
Set vPlans = ThisWorkbook.Sheets("Loop_palavras_repetidas_shapes") Set vShapes = vPlans.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 500, 1000) Set vFrame = vShapes.TextFrame
'Debug.Print TypeName(vShapes), vShapes.Name' vFrame.Characters.Text = Incio_Texto 'vFrame.AutoSize = True
For i = 1 To Maximo_interacoes Inserir_EsteTexto vFrame, " Saberexcel_VBA_Treinamento®" Range("A1").Value = i Next i ' End Sub
Private Sub Inserir_EsteTexto(vFrame As TextFrame, _ vstrTexto As String) Dim strRight As String Dim i As Long
With vFrame For i = 0 To Int(Len(vstrTexto) / 254) strRight = .Characters(.Characters.Count).Text .Characters(.Characters.Count).Insert strRight & Mid(vstrTexto, (i * 254) + 1, 254) 'Debug.Print Len(vstrTexto), .Characters.Count' Next i End With
End Sub
Essa macro abaixo é uma macro auxliar para ajudar no teste com o macro acima, sua função deletar shapes retangulares.
Sub Deleta_Shapes_retangulares() Dim shp As Shape For Each shp In ActiveSheet.Shapes If shp.AutoShapeType = msoShapeRectangle Then On Error Resume Next If Intersect(shp.TopLeftCell, Selection.Range) Then shp.Delete 'Intersect(shp.BottomRightCell),Selection.Range) Then shp.Delete End If Next shp [A1].Value = ""
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel
Publicidade Compre com segurança, garantia e ótimos preços
|