Saberexcel - o site das macros Macros do Aplicativo Microsoft Excel VBA, insere shapes númerados nos comentários.
Sub inserir_shapes_numerados() Dim Wsh As Worksheet Dim cmt As Comment Dim lCmt As Long Dim rngCmt As Range Dim shpCmt As Shape Dim shpW As Double 'shape width Dim shpH As Double 'shape height
Set Wsh = ActiveSheet shpW = 8 shpH = 6 lCmt = 1
For Each cmt In Wsh.Comments Set rngCmt = cmt.Parent With rngCmt Set shpCmt = Wsh.Shapes.AddShape(msoShapeRectangle, _ rngCmt.Offset(0, 1).Left - shpW, .Top, shpW, shpH) End With With shpCmt With .Fill .ForeColor.SchemeColor = 2 'white .Visible = msoTrue .Solid End With With .Line .Visible = msoTrue .ForeColor.SchemeColor = 64 'automatic .Weight = 0.25 End With With .TextFrame .Characters.Text = lCmt .Characters.Font.Size = 4 .MarginLeft = 0# .MarginRight = 0# .MarginTop = 0# .MarginBottom = 0# .HorizontalAlignment = xlCenter End With .Top = .Top + 0.001 End With lCmt = lCmt + 1 Next cmt
End Sub
Esta macro remove os indicadores(shapes) inseridos nos comentários Sub Remove_indicador_shapes()
Dim Wsh As Worksheet Dim shp As Shape
Set Wsh = ActiveSheet
For Each shp In Wsh.Shapes If Not shp.TopLeftCell.Comment Is Nothing Then If shp.AutoShapeType = _ msoShapeRectangle Then shp.Delete End If End If Next shp
End Sub
Esta macro relaciona os comentários em uma folha de planilha separada, numero, nome, valor, e endereço do comentário Sub Relacionar_comentarios() Application.ScreenUpdating = False
Dim commrange As Range Dim cmt As Comment Dim Atual_Plan As Worksheet Dim nova_plan As Worksheet Dim i As Long
Set Atual_Plan = ActiveSheet
On Error Resume Next Set commrange = Atual_Plan.Cells _ .SpecialCells(xlCellTypeComments) On Error GoTo 0
If commrange Is Nothing Then MsgBox "nao foi encontrado comentários" Exit Sub End If
Set nova_plan = Worksheets.Add
nova_plan.Range("A1:D1").Value = _ Array("Numero", "Nome", "Valor", "Comentário")
i = 1 For Each cmt In Atual_Plan.Comments With nova_plan i = i + 1 On Error Resume Next .Cells(i, 1).Value = i - 1 .Cells(i, 2).Value = cmt.Parent.Name.Name .Cells(i, 3).Value = cmt.Parent.Value .Cells(i, 4).Value = cmt.Parent.Address .Cells(i, 5).Value = Replace(cmt.Text, Chr(10), " ") End With Next cmt
nova_plan.Cells.WrapText = False nova_plan.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
Aprenda Microsoft Excel VBA (Saberexcel)
|