FIND DAN REPLACE text ataustring dalam excel worksheet atau range yaitu hal biasa dan mudah dilakukandengan perintah Find (Ctrl + F) atauReplace (Ctr + H). Namun bagaimana caranya menerima dan menukar text dalam exelcomment. Saya belum menerima cara lain selain menggunakanvba dan macro. Contoh script berikutdapat digunakan untuk mencari dan sekaligus mengubah text tertentu dalamcomment box.
1.      Contoh Script untuk mencari dan menjumlah texttertentu yang ditemui dalam text comment dan menampilkan isu hasil dariproses tersebut.
 ‘—————————————————————————————-
Sub findTextInComment()
Dim findStr As String , cmtStrAs String , r As Range
Dim i As Long , findCount AsLong , cmtCount As Long
findStr = InputBox(“TextYang Dicari :”)
If findStr = “” ThenExit Sub
For Each r In Selection
   If Not (r.Comment Is Nothing) Then
       cmtCount = cmtCount + 1
       cmtStr = r.Comment.Text
       i = InStr(1 , cmtStr , findStr ,vbTextCompare)
       Do While i <> 0
           findCount = findCount + 1
           i = InStr(i + 1 , cmtStr , findStr ,vbTextCompare)
           r.Interior.Color = vbGreen
       Loop
   End If
Next
MsgBox “Hasil Pencarian:Â ” & findCount
End Sub
2.      Contoh Scrip untuk mengubah text tertentu yangdijumpai dalam text comment , dan menampilkan isu hasil dari prosestersebut:
Nb: pada script yang lain yang saya jumpai dari banyak sekali sumber di internet ,biasanya proses replace text comment merubah/merusak format sebelumnya. Code vba excel macro berikut telah di-test dan melakukan pekerjaan tanpamerubah format comment text sebelumnya.
 ‘—————————————————————————————-
Sub replaceTextInComment()
Dim c As Comment , r As Range , iAs Long , j As Long , k As Long
Dim sCmt As String , sFind AsString , sReplace As String
Dim replaceCount As Long ,cmtFindCount As Long , cmtCount As Long
Application.ScreenUpdating =False
sFind = InputBox(“textyang akan ditukar :”)
If sFind = “” ThenExit Sub
sReplace = InputBox(“textpengganti :”)
j = Len(sFind)
k = Len(sReplace)
For Each r In Selection
If Not (r.Comment Is Nothing)Then
   cmtCount = cmtCount + 1
   Set c = r.Comment
   i = InStr(1 , c.Text , sFind , vbTextCompare)
   If i > 0 Then
       cmtFindCount = cmtFindCount + 1
       r.Interior.Color = vbBlue
   End If
   Do While i > 0
       If sReplace = “” Or i = 1Then
           c.Shape.TextFrame.Characters(i ,j).Insert (sReplace)
       Else
           sCmt = c.Text(sReplace , i + 1 , j -1)
           c.Shape.TextFrame.Characters(i ,1).Insert (“”)
       End If
       replaceCount = replaceCount + 1
       i = InStr(i + k , c.Text , sFind ,vbTextCompare)
   Loop
End If
Next
If replaceCount > 0 Then
Application.ScreenUpdating =True
MsgBox (“BERHASIL DENGANKETERANGAN SBB:Â Â Â ” & Chr(10) _
     & “Text Awal: ” &Chr(34) & sFind & Chr(34) & Chr(10) _
     & “Text Pengganti: ” &Chr(34) & sReplace & Chr(34) & Chr(10) _
     & “Text Diganti: ” & replaceCount & Chr(10) _
     & “Comment dicek: ” &cmtCount & Chr(10) _
     & “Comment diganti: ” &cmtFindCount)
End If
End Sub
Cara memakai macro: sorot range yang ada insert comment-nya dan lalu kerjakan makro di atas.

Seorang pengajar dan pembelajar yang mengurus lembaga pelatihan dan kursus komputer bernama LKP Naura