Word dosyalarında istenmeyen ve görünmeyen karakterlerin işinizi yavaşlattığına şahit olmuşsunuzdur.
Bunları temizlemek için istenen karakter aralığının dışında tüm karakterleri silmek mantığında çalışan, basit bir makro denedim.
Kod, kısmen başarılı olsa da işlemciyi 3 basamaklı sayfaya erişen dosyalarda işlemciyi yorması ve aşağıdaki gibi bazı özel karakterlerin makroya eklenememesi gibi sorunlardan dolayı, kodun gelişimi maalesef sekteye uğradı.
Bu karakterlerin istisna dizisi içinde yer almasını istedim; fakat makro düzenleyici Unicode 255'inci karakter sırasından sonraki Genişletilmiş Latinceyi desteklemedi:
ā Ā ˁ ḍ Ḍ ˀ ḥ Ḥ ḫ Ḫ ġ Ġ Ī Ī ḳ Ḳ s̠ S̠ ṣ Ṣ ṭ Ṭ ū Ū ẕ Ẕ Ż Ż ẓ Ẓ
Word dosyasındaki deneme metni aşağıdadır:
ARŞİVLER
Lorem Ipsum, dizgi ve baskı endüstrisinde kullanılan mıgır metinlerdir. Lorem Ipsum, adı bilinmeyen bir matbaacının bir hurufat numune kitabı oluşturmak üzere bir yazı galerisini alarak karıştırdığı 1500'lerden beri endüstri standardı sahte metinler olarak kullanılmıştır.
Beşyüz yıl boyunca varlığını sürdürmekle kalmamış, aynı zamanda pek değişmeden elektronik dizgiye de sıçramıştır. 1960'larda Lorem Ipsum pasajları da içeren Letraset yapraklarının yayınlanması ile ve yakın zamanda Aldus PageMaker gibi Lorem Ipsum sürümleri içeren masaüstü yayıncılık yazılımları ile popüler olmuştur.
Joker karakterli değiştirme penceresinde ise şu arama ifadesini denedim. Kısmen başarılı oldu; ama 255'ten fazla karakteri bu pencerede yönetmek zor.
[!A-z 0-9 ışğüöçİŞĞÜÖÇ.,;'^13]
Çalıştırdığım makro:
Sub Gorunmeyen_Karakter_Vurgula()
Dim ToplamHarfSayisi As Long
ToplamHarfSayisi = ActiveDocument.Range.Characters.Count
Dim HarfSayac As Long
Dim Dizi As Variant
Dizi = Array("", "A", "B", "C", "Ç", "D", "E", "F", "G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", _
"Q", "R", "S", "Ş", "T", "U", "Ü", "V", "W", "X", "Y", "Z", " ", ".", ",", ":", ";", _
"a", "b", "c", "ç", "d", "e", "f", "g", "ğ", "h", "ı", "i", "j", "k", "l", "m", "n", _
"o", "ö", "p", "q", "r", "s", "ş", "t", "u", "ü", "v", "w", "x", "y", "z", _
"!", Chr(34), "#", "$", "%", "&", "'", Chr(133), "(", ")", "*", "+", "-", "/", ">", "=", "<", "?", "@", _
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", _
"â", "î", "û", "Â", "Î", "Û", _
"[", "\", "]", "^", "_", "`", "{", "|", "}", "~", "€", "ƒ", _
Chr(137), "Š", "‹", "Œ", "?", "'", "o", "-", "™", "š", "›", "œ", "Ÿ", "¡", "¢", "£", _
"¤", "¥", "¦", "§", "¨", "©", "ª", "", "®", "¯", "°", "±", "²", "³", "´", "µ", "·", "¸", "¹", "º", "¼", "½", "¾", "¿", _
"À", "Á", "Ã", "Ä", "Å", "Æ", "È", "É", "Ê", "Ë", "Ì", "Í", "Ï", "Ñ", "Ò", "Ó", "Ô", "Õ", "×", _
"Ø", "Ù", "Ú", "ß", "à", "á", "ã", "ä", "å", "æ", "è", "é", "ê", "ë", "ì", "í", "ï", "ñ", "ò")
Dim DiziSayac As Long
For HarfSayac = 1 To ToplamHarfSayisi
For DiziSayac = 1 To UBound(Dizi)
If ActiveDocument.Range.Characters(HarfSayac) = Dizi(DiziSayac) Then
GoTo SonrakiHarf
End If
Next DiziSayac
If DiziSayac > UBound(Dizi) - 1 Then
ActiveDocument.Range.Characters(HarfSayac).Select
Selection.Range.HighlightColorIndex = wdRed
End If
ToplamHarfSayisi = ActiveDocument.Range.Characters.Count
If HarfSayac = ToplamHarfSayisi Then
GoTo IslemSonu
End If
SonrakiHarf:Next HarfSayac
IslemSonu:
End Sub
Hiç yorum yok:
Yorum Gönder