Cellkommentarer
Att kunna kontrollera cellkommentarer mha VBA kan ibland vara nödvändigt. I synnerhet om vi har skapat egna mallar och där vi t ex vill styra användarna till att ange kommentarer inom vissa cellområden.
Exemplet demonstrerar hur vi kan infoga, ta bort och ersätta cellkommentarer samt tilldela vissa egenskaper hos cellkommentarer egna värden.
Textrutans bakgrundsfärg för cellkommentarer kan inte kontrolleras mha VBA.
Sub Cellkommentar()
'© 2001 Alla rättigheter XL-Dennis
Dim rnCell As Range
Dim stNamn As String
Dim vaKommentar As Variant
Dim iAtgard As Integer
stNamn = Application.UserName
Set rnCell = ActiveCell
With rnCell
'Om ingen cellkommentar existerar
If .Comment Is Nothing Then
'Kommentarer anges av användaren
vaKommentar = Application.InputBox _
("Ange kommentartexten här:", "Infoga / redigera cellkommentar", _
Default:="", Type:=2)
'Om dialogrutan stängs mha Avbryt-knappen
If vaKommentar = False Then Exit Sub
'Här läggs användarnamn och själva cellkommentar till
.AddComment Text:=stNamn & ":" & vbLf & vaKommentar
'Här formateras cellkommentaren
With .Comment.Shape.TextFrame
With .Characters.Font
.Size = 11
.ColorIndex = 3
.Name = "Arial"
End With
.AutoSize = True
'Användarnamnet i fetstil
.Characters(Start:=1, Length:=Len(stNamn)).Font.Bold = True
End With
Else
'Om en cellkommentar redan existerar
iAtgard = MsgBox("Vill du ta bort cellens kommentar?", vbYesNoCancel, _
"Ta bort kommentar")
Select Case iAtgard
Case vbYes
.Comment.Delete
Exit Sub
Case vbCancel
Exit Sub
Case vbNo
vaKommentar = Application.InputBox _
("Ange kommentartexten här:", "Infoga / redigera cellkommentar", _
Default:="", Type:=2)
If vaKommentar = False Then Exit Sub
.Comment.Delete
.AddComment Text:=stNamn & ":" & vbLf & vaKommentar
End Select
End If
End With
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End Sub