Bu yazıda karşılaştığım bir problemi ve bunun için bulduğum pratik çözümü paylaşmak istiyorum. Özellikle ofis işleriyle, eğitim dökümanlarıyla veya belge düzenlemeyle uğraşanlar bu durumu iyi bilir.
Klasörünüzde yüzlerce Word belgesi olur. Her biri zamanında farklı kişilerce hazırlanmıştır. Yazı tipi farklıdır, boyutu farklıdır, hatta bazen biri Arial 11, diğeri Times New Roman 14 olabilir. İşin kötü tarafı, bu belgeleri tek tek açıp düzenlemek büyük zaman kaybıdır. Ben de bu durumla karşılaştım.
Bir çözüm ararken dedim ki, Word’ün içinde bunun için bir araç olmalı. Ve evet, varmış. Microsoft Word’ün içinde yer alan VBA (Visual Basic for Applications) özelliği ile bu işi otomatikleştirmek mümkün.
Ben de basit bir makro yazdım. Bu makro sayesinde, belirlediğim klasördeki tüm Word dosyaları açılıyor, içerisindeki tüm yazılar belirlediğim yazı tipi ve boyuta göre düzenleniyor, ardından belgeler kaydedilip kapanıyor. Hepsi arka planda, sessiz sedasız yapılıyor. Ve birkaç dakika içinde yüzlerce belge aynı stile kavuşuyor.
Ne İşe Yarıyor?
-
Zaman kazandırıyor.
-
Yazı tipinde ve boyutunda tutarlılık sağlıyor.
-
Elle yapılan hataları ortadan kaldırıyor.
-
Süreci otomatikleştirerek yorucu bir işi kolaylaştırıyor.
Nasıl Yapılır?
Öncelikle Word’ü açtıktan sonra ALT + F11 tuşlarına basarak VBA editörüne geçiyorsunuz.
Sol tarafta boş bir alana sağ tıklayıp Insert > Module diyerek yeni bir modül açıyorsunuz.
Sonra aşağıdaki kodu olduğu gibi yapıştırıyorsunuz:
Sub TumKlasorlerdeFontDegistir() Dim anaKlasor As String Dim toplamDosya As Long anaKlasor = "C:\Users\İbrahim Tonca\Desktop\HikayeKlasorleri\" toplamDosya = 0 AltKlasorTara anaKlasor, toplamDosya MsgBox toplamDosya & " belge başarıyla güncellendi!", vbInformation End Sub Sub AltKlasorTara(ByVal klasorYolu As String, ByRef sayac As Long) Dim fso As Object Dim klasor As Object Dim altKlasor As Object Dim dosya As Object Dim doc As Document Set fso = CreateObject("Scripting.FileSystemObject") Set klasor = fso.GetFolder(klasorYolu) For Each dosya In klasor.Files If LCase(fso.GetExtensionName(dosya.Name)) = "docx" Then Set doc = Documents.Open(dosya.Path, ReadOnly:=False) With doc.Content .Font.Name = "Segoe UI" .Font.Size = 15 End With doc.Save doc.Close sayac = sayac + 1 End If Next For Each altKlasor In klasor.SubFolders AltKlasorTara altKlasor.Path, sayac Next End Sub
Bu makro çalıştığında, verdiğiniz klasörün içindeki ve alt klasörlerindeki tüm .docx
uzantılı dosyalar düzenlenmiş olur.
Dikkat Edilmesi Gerekenler
- Belgeler
.docx
uzantılı olmalı. Eski.doc
uzantılı belgeler için bu kod işe yaramaz. - Klasör yolunu kendi bilgisayarınıza göre güncellemelisiniz.
Nerelerde Kullanılır?
Ben bu sistemi özellikle çok sayıda öğrenci belgesi, rapor, eğitim notu ya da kurumsal belge düzenlemesi gibi alanlarda kullandım. Daha önce saatler alan bir iş, artık birkaç dakikada bitiyor.
Sonuç
Tek tek dosya açmadan, tek tuşla yazı tipi ve boyutlarını değiştirmek mümkün. Bu tür küçük otomasyonlar, zaman kazandırdığı gibi işleri çok daha düzenli hale getiriyor. Word ile çalışan herkesin bu tür çözümleri öğrenmesi faydalı olur.
Ben kullandım, memnun kaldım. Umarım sizde de işe yarar.