Premesso che molte impostazioni Excel le eredita da Windows e che la letteratura comune dichiara che il formato del "commento" corrisponde alla voce Tooltip /Descrizione comando all' interno delle impostazioni dello schermo (dal desktop, tasto dx; poi dipende dal S.O.).
Premesso anche che io in realta' vedo che il font non cambia secondo questa impostazione (cambia Dimensione, Bold , Italic, Color) e che questa impostazione modifica solo i commenti che verranno successivamente scritti.
Cio' detto1, ritengo quindi che le macro sviluppate per modificare in momenti noti la formattazione dei commenti inseriti siano una buona soluzione (compreso l' ultimo suggerimento di Ricky, vedi sopra), piu' completa che non modificare le impostazioni di Windows.
Cio' detto2, a scopo puramente didattico ho sviluppato questa macro per inserire un commento in un formato preimpostato (nella macro):
- Codice: Seleziona tutto
Sub Set_commenti()
' vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=93670
Dim Autore As String, ACapo As String, myComm As String
Dim I As Long, J As Long, MaxCr As Long
'
Autore = "Anthony:" '<< Sara' aggiunto in bold in testa al commento
ACapo = "|" '<< Questo carattere verra' trasformato in "A capo"
MaxCr = 20 '<< Caratteri max per riga di commento
'
On Error GoTo NoComm
aaa = ActiveCell.Comment.Text
MsgBox ("Esiste gia' un commento; cancellarlo prima di inserirne un altro")
Exit Sub
'
NoComm:
On Error GoTo 0
myComm = InputBox("Input commento; usare " & ACapo & " per impostare un " & """A capo""")
If myComm = "" Then Exit Sub
'
If ACapo <> "" Then myComm = Replace(myComm, ACapo, Chr(10))
For I = 1 To Len(myComm)
aaa = Mid(myComm, I, 1)
If Mid(myComm, I, 1) = " " Then
J = J + 1
If J >= MaxCr Then
myComm = Left(myComm, I) & Chr(10) & Mid(myComm, I + 1, 9999)
J = 0
End If
Else
If Mid(myComm, I, 1) = Chr(10) Then J = 0 Else J = J + 1
End If
Next I
If Autore <> "" Then myComm = Autore & Chr(10) & myComm
With ActiveCell
.AddComment
.Comment.Visible = False
.Comment.Text Text:=myComm
End With
'
ActiveCell.Comment.Shape.TextFrame.AutoSize = True
With ActiveCell.Comment.Shape.TextFrame
.Characters.Font.Name = "Tahoma"
.Characters.Font.Size = 11
.Characters.Font.Bold = False
.Characters.Font.Italic = False
.Characters.Font.Color = RGB(0, 0, 0)
If Len(Autore) > 0 Then .Characters(1, Len(Autore)).Font.Bold = True
End With
End Sub
Ho assegnato alla macro un tasto di scelta rapida (ho usato Contr-Maiusc-M), quando voglio inserire un commento premo questa sequenza e posso inserire il testo del commento in un inputbox; le righe marcate << contengono alcune informazioni per la gestione del testo. So che l' inputbox e' un meccanismo molto grezzo, si potrebbe quindi usare un activeX "casella di testo" normalmente nascosto, oppure la casella di testo su una userform completa di altri comandi utili per la formattazione; ma lascio questa eventuale evoluzione nell' ipotesi che emerga un irrefrenabile bisogno di queste prestazioni...
Ciao a tutti.