Belajar Microsoft Excel: Excel Comment – Find & Replace Text Dalam Comment

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.
Selamat Mencoba..
Need Help? Chat with us