Özellik ikonu

Range.ClearComments

İndirme izni yok

Genel Bakış

Range.ClearComments (Range.ClearComments method), bir Range nesnesindeki hücrelere bağlı notları (cell comments) topluca siler. Hücrenin değerine, formülüne ve biçimine dokunmaz; yalnızca not simgesiyle gelen açıklama kutusunu kaldırır. Elle yapılan Gözden Geçir > Notlar > Sil (Review > Notes > Delete) işleminin VBA karşılığıdır.

Söz dizimi​

Yöntem parametre almaz ve değer döndürmez. Bir Range ifadesinin sonuna eklenir:
VBA
ifade.ClearComments
  • ifade: Zorunlu. Bir Range nesnesi döndüren ifade; örneğin Range("B2:B6"), Cells, Selection ya da UsedRange.
  • Parametre: Yoktur. Yöntem, aralıktaki tüm notları siler; belirli bir notu seçmek için aralığı daraltmanız gerekir.
  • Dönüş değeri: Yoktur; yöntem bir işlem yapar ve sonuç üretmez.

Ne siler, ne silmez​

ClearComments yalnızca aralıktaki hücrelere bağlı notları kaldırır. Hücre içeriği, sayı biçimi, dolgu rengi ve kenarlıklar yerinde kalır. Bu nedenle ClearContents (değerleri siler, notları korur), ClearFormats (biçimleri siler) ve Clear (her şeyi siler) yöntemlerinden ayrılır.
Aralıkta hiç not yoksa hata oluşmaz; yöntem sessizce geçer. Birleştirilmiş hücrelerde aralığın tamamını verdiğinizde not yine silinir.
Yeni Excel sürümlerinde iki tür açıklama vardır: klasik notlar ve iş parçacıklı yorumlar (threaded comments). Klasik notlar Comment ve Comments ile, iş parçacıklı yorumlar CommentThreaded ve CommentsThreaded ile yönetilir. İş parçacıklı yorumlar içeren dosyalarda sonucu önce kopya üzerinde deneyin.

Notların sayısını ve varlığını denetleme​

Silmeden önce ya da sonra durumu denetlemek için iki yol kullanılır. Tek bir hücrede not olup olmadığını Range.Comment özelliğinin Nothing olup olmadığına bakarak anlarsınız. Sayfadaki toplam not sayısını ise Worksheet.Comments.Count verir.
VBA 4 satır
If Range("A2").Comment Is Nothing Then
    ' Hücrede not yok
End If
MsgBox ActiveSheet.Comments.Count
Silinecek aralığı doğru seçmek önemlidir: Cells.ClearComments sayfadaki tüm notları, Range("B2:B6").ClearComments ise yalnızca belirtilen hücrelerdekileri siler.

1. Bir aralıktaki tüm notları silme​

Sayfada müşteri ve tutar listesi var. Makro önce B2:B6 hücrelerine not ekler, not sayısını C2 hücresine yazar, B2:B6 aralığındaki notları ClearComments ile siler ve kalan not sayısını D2 hücresine yazar. Kodu standart bir modüle (Ekle > Modül) yapıştırın.
VBA 24 satır
Option Explicit

Sub NotlariTemizle()
    Dim ws As Worksheet
    Dim r As Long

    Set ws = ThisWorkbook.Worksheets("Not Temizleme")

    ' Önce B2:B6 hücrelerine not ekle
    For r = 2 To 6
        If ws.Cells(r, 2).Comment Is Nothing Then
            ws.Cells(r, 2).AddComment "Ödeme koşulu kontrol edilecek"
        End If
    Next r

    ' Silmeden önceki not sayısı
    ws.Range("C2").Value = ws.Comments.Count

    ' B2:B6 aralığındaki notları sil
    ws.Range("B2:B6").ClearComments

    ' Silindikten sonraki not sayısı
    ws.Range("D2").Value = ws.Comments.Count
End Sub
Range.ClearComments
Formülünü incelemek için bir hücre seçin.
ABCD
1MüşteriTutarÖnceki Not SayısıSonraki Not Sayısı
2Ahmet Yılmaz12.500,0050
3Ayşe Kaya8.400,00
4Mehmet Demir15.200,00
5Fatma Şahin6.750,00
6Ali Çelik9.900,00
Not TemizlemeExcelDepo v1.0.0
Makro çalışmadan önce sayfada 5 not bulunur; ClearComments sonrasında kalan not sayısı 0 olur. Tutar sütunundaki değerler ve sayı biçimi olduğu gibi kalır; yalnızca notlar kaldırılmıştır.

2. Koşula bağlı olarak yalnızca bazı notları silme​

Her siparişin A sütunundaki hücresine sevkiyat notu eklenir. Durumu "Teslim Edildi" olan satırların notları gereksiz olduğundan yalnızca onlar silinir. D sütununa her satırın not durumu yazılır. Kodu standart bir modüle yapıştırın.
VBA 27 satır
Option Explicit

Sub TeslimEdilenNotlariSil()
    Dim ws As Worksheet
    Dim r As Long

    Set ws = ThisWorkbook.Worksheets("Sevkiyat Takibi")

    For r = 2 To 7
        ' Her siparişe sevkiyat notu ekle
        If ws.Cells(r, 1).Comment Is Nothing Then
            ws.Cells(r, 1).AddComment "Sevkiyat bilgisi gözden geçirildi"
        End If

        ' Teslim edilmiş siparişin notunu sil
        If ws.Cells(r, 3).Value = "Teslim Edildi" Then
            ws.Cells(r, 1).ClearComments
        End If

        ' Not durumunu D sütununa yaz
        If ws.Cells(r, 1).Comment Is Nothing Then
            ws.Cells(r, 4).Value = "Not yok"
        Else
            ws.Cells(r, 4).Value = "Not var"
        End If
    Next r
End Sub
Range.ClearComments
Formülünü incelemek için bir hücre seçin.
ABCD
1Sipariş NoMüşteriDurumNot Durumu
2SP-1001Ahmet YılmazTeslim EdildiNot yok
3SP-1002Ayşe KayaYoldaNot var
4SP-1003Mehmet DemirTeslim EdildiNot yok
5SP-1004Fatma ŞahinHazırlanıyorNot var
6SP-1005Ali ÇelikYoldaNot var
7SP-1006Zeynep ArslanTeslim EdildiNot yok
Sevkiyat TakibiExcelDepo v1.0.0
Teslim edilmiş siparişlerde (SP-1001, SP-1003 ve SP-1006) not silindiği için D sütunu Not yok, Not yok ve Not yok sonucunu verir. Yolda ya da hazırlanan siparişlerde not korunur; örneğin D3 hücresi Not var değerini gösterir. Böylece ClearComments yöntemini tek hücreye ve koşula bağlı olarak da uygulayabildiğinizi görürsünüz.

3. Tüm sayfadaki notları silip değerlerin korunduğunu görme​

Aylık satış tablosunda KDV'li tutar bir formülle hesaplanır. Makro B2:B4 hücrelerine not ekler, ardından Cells.ClearComments ile sayfadaki tüm notları siler ve D2 hücresine kalan not sayısını yazar. Kodu standart bir modüle yapıştırın.
VBA 21 satır
Option Explicit

Sub TumSayfadaNotSil()
    Dim ws As Worksheet
    Dim r As Long

    Set ws = ThisWorkbook.Worksheets("Aylık Satışlar")

    ' Satış hücrelerine düzeltme notu ekle
    For r = 2 To 4
        If ws.Cells(r, 2).Comment Is Nothing Then
            ws.Cells(r, 2).AddComment "Düzeltme: " & ws.Cells(r, 1).Value
        End If
    Next r

    ' Sayfadaki tüm notları sil
    ws.Cells.ClearComments

    ' Kalan not sayısını yaz
    ws.Range("D2").Value = ws.Comments.Count
End Sub
Range.ClearComments
Formülünü incelemek için bir hücre seçin.
ABCD
1AySatışKDV'li TutarKalan Not
2Ocak1.200,001.440,000
3Şubat1.450,001.740,00
4Mart980,001.176,00
Aylık SatışlarExcelDepo v1.0.0
Makro bittiğinde D2 hücresi 0 değerini gösterir; yani sayfada hiç not kalmamıştır. Satış değerleri ve formüller etkilenmez: C2 hücresi hala 1.440,00, C3 hücresi 1.740,00 sonucunu verir. Bu, ClearComments yönteminin hücre içeriğini değil yalnızca notları sildiğini gösterir.

Kullanırken dikkat edin​

  • Silinen notlar geri alınamaz: Makro ile yapılan silme işlemi Geri Al (Undo) listesine girmez. Önemli notların bulunduğu dosyada çalıştırmadan önce dosyanın bir kopyasını alın ya da aralığı dikkatle sınırlayın.
  • Aralığı doğru seçin: Cells.ClearComments sayfadaki tüm notları siler. Yalnızca belirli bir tabloyu temizlemek istiyorsanız Range("A2:D50") gibi sınırlı bir aralık kullanın. Selection.ClearComments ise seçili hücrelere göre çalıştığı için makroyu başka bir sayfadayken çalıştırırsanız beklenmedik hücreleri etkileyebilir.
  • Not ile iş parçacıklı yorum farkı: Yeni Excel sürümlerinde klasik notlar ile iş parçacıklı yorumlar ayrı nesnelerdir. ClearComments klasik notlar için tasarlanmıştır; iş parçacıklı yorumların nasıl etkilendiği sürüme göre değişebilir. Bu tür yorumlar için CommentThreaded.Delete yöntemini ayrıca deneyin ve sonucu kopya dosyada doğrulayın.
  • Korumalı sayfalarda hata alırsınız: Sayfa korumalıysa ve nesneleri düzenleme izni verilmemişse yöntem hata verir. Önce Unprotect ile korumayı kaldırın, notları silin, ardından Protect ile korumayı yeniden açın.
  • Not yoksa hata oluşmaz: Aralıkta hiç not bulunmaması hata nedeni değildir. Buna karşılık tek bir hücrenin Comment özelliğine not yokken doğrudan .Text ile erişirseniz hata alırsınız; önce Is Nothing denetimi yapın.
  • İlgili konular:
    • Range.AddComment: hücreye yeni not ekler.
    • Range.Comment: tek hücredeki notu temsil eder.
    • Worksheet.Comments: sayfadaki tüm notların koleksiyonudur.
    • Comment.Delete: tek bir notu siler.
    • Range.ClearContents: değerleri siler, notları korur.
    • Range.ClearFormats: biçimleri siler.
    • Range.Clear: içerik, biçim ve notların tümünü siler.
    • Range.CommentThreaded: iş parçacıklı yorumlara erişim sağlar.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
10
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst