CorelDraw VBA - Save As v1x (Alt versiyonlara kaydetme tek/çoklu)

Bu derste öğreneceğimiz ;

İlk VBA dersimizin başlangıç paragrafında örnek verirken "Başka bir örnek vermek gerekirse, elinizde herhangi bir yere göndermek zorunda olduğunuz Corel dökümanlar var, sizinkisi versiyon X4'de kaydedilmiş ama karşı tarafın Corel versiyonu X3, adamcağız ölse açamaz, eh sizin de bu dökümanları tek tek açıp X3'e göre kaydetmeniz gerekiyor diyelim" gibi bir tanım kullanmıştım. (Yüzlerce dökümanı aynı anda eski versiyon şeklinde kaydetmek zorunda olduğunuzu bir düşünün...) Bu derste öğreneceğimiz kolaylık kısaca; açık olan birçok dökümana tek tek menüden gidip "Save as" komutu verip, ordan versiyon belirleyip kaydetmek yerine tek bir tıklama ile bir veya birçok olsun açık durumda olan dökümanı istediğimiz alt versiyona çevirmek. Bu makro bir çoğunuzun işini büyük oranda kolaylaştıracaktır. Dersimize başlayalım. Önceki derslerde VBA Editör içinde nasıl yeni bir GMS, yeni bir form oluşturabileceğimizi ve bu forma; combobox, buton, textbox vb nesneleri hangi şekilde yerleştirebileceğimizi öğrenmiştik. Yeni bir GMS uzantılı dökümanımızı belirtilen yerde oluşturup, (Ben Örnek olarak "zaveaz.gms" yaptım. ) CorelDraw (bundan sonraki derslerde CD olarak anılacaktır) ve hemen ardından VBA Editör'ü çalıştıralım. (bundan sonraki derslerde VBE olarak anılacaktır.) Global adındaki benzerlik, dolayısıyla bir karışıklık olmasını önlemek adına GMS modülümüzün adını değiştirelim. Bunu da "farklikaydet" yaptım. Önemli değil siz ne isterseniz o adı verin. Ama derslerde beraber ilerleyebilmemiz adına aynı adları kullanmaya çalışırsanız daha iyi olur. Şimdi bu derste şunu öneriyorum, form üzerine girdiler yapıp, buton ile tetikleme yoluyla komutları işletiyorduk, bu derste sadece modül olarak yazalım, bir sonraki derste yazdığımız macroları menülere ekleme konusunu göstereyim, malum macro sayımız fazlalaşacağı için artık bu komutları üstteki CD menülerine aktarmanın da sırası gelmiştir diye düşünüyorum. (bknz: alttaki foto örneği, benim corel programıma eklediğim menü... bir sonraki derste onu da göreceğiz.) Evet, farklikaydet.zaveaz içine bir modül ekleyelim. (Project penceresinde gms mizin aktif olduğundan emin olalım, pencere sol üst köşede "Project - farklikaydet" diye yazıyor olması gerek.) Alışkanlık edinmemiz açısından modülün de adını değiştirelim. Ben saveet diye bir ad verdim. Şimdi Project penceresinde farklikaydet(zaveaz.gms) altındaki, Modules'in yanındaki oka tıklıyoruz artı iken eksi oluyor ve altında saveet diye modülümüz görünüyor, onun da üstüne çift tıklayalım ve kod penceresi gelsin. Kodları açıklamaları ile birlikte yazmaya başlayalım;


Sub saveazz() 'Kodlar Sub ile başlar (çoğu durumda) ve bir ad vermek gerekir. Dim d As Document 'Dökümanımızın tanımını yapalım. Dim opt As New StructSaveAsOptions 'Kaydetme seçenekleri burada sıralanıyor. 'şimdi aşağıda "dirty" ile dökümanın kaydedilebilecek durumda olup/olmadığını 'kontrol ediyoruz. If ActiveDocument.Dirty Then ActiveDocument.Save 'Döküman üzerinde değişiklik varsa kaydolsun opt.EmbedICCProfile = False ' ICCprofili göm? = hayır opt.EmbedVBAProject = False ' VBA kodu/projesi varsa dökümanla beraber kaydet? = hayır opt.Filter = cdrCDR 'tipi? = tabiiki CDR opt.IncludeCMXData = False'cmxbilgiyi ekle?=hayır opt.Overwrite = True 'üstüne yazalım mı?= evet (yoksa saveas için dialog kutusu açar, 'işin tadı da kaçar) opt.Range = cdrAllPages 'corel içindeki dökümanda birden fazla sayfa varsa hata msjını 'önlemek için bu komutu ekliyoruz. opt.ThumbnailSize = cdr10KColorThumbnail ' thumb kalitesi, tipi opt.Version = cdrVersion11 'Burada yazacağınız versiyon numarasına göre kayıt olacak bu eski 'kodlarımdan kalma olduğu için 11 bırakıyorum. 'bu dökümanı farklı kaydet diyor ve corel11 e göre kaydediyor. ActiveDocument.SaveAs (ActiveDocument.FullFileName), opt End Sub 'işte bu kadar sub deyimini sonlandırıyoruz.
İşlem tamam... Bir sonraki derste bu komutu kendimizin yaratacağı, bize özel "VBA" adlı menüye aktaracağız. Böylelikle yazdığımız makroları özel menümüzde görme olanağına da kavuşmuş olacağız. İyi çalışmalar, başarılar.. 

Tunç Olçay
1970 İzmir doğumlu yazar, 10 yıla yakın profesyonel müzisyenlik hayatına nokta koyup pc grafik hayatına biraz geç de olsa 1998 yılında başladı. <p>İlk dalı Macintosh üzerinde; plotter kesim Illustrator ve Freehand olmasına karşın bu işletim sistemi ve programlara ısınamadığını CorelDraw ve pc ile tanıştıktan sonra anladı. 1-2 yıl arası dizgicilik deneyimlerinden sonra kendi deyimiyle grafik üzerine dönüm noktası olan reprodüksiyon (renk ayrım/film çıkış) firmasında 2 yıla yakın çalışması sonucunda grafik ve dizgi üzerine adı geçen tüm programları hakim şekilde kullanmayı, renk ayrımını, montajı vb baskı öncesi tüm bilgileri burada öğrendi. <p>En büyük hobisi öğrenmek sayesinde programcılığa da merak saldı. Visual Basic ile bu dönemde tanıştı ve işine yarayabilecek küçük çaplı programlar yazmaya başladı. Çeşitli firmalarda Grafik Bölüm Şefliği deneyimlerini yaşadıktan kısa bir süre sonra çalışmaya başladığı andaç üretimi yapan bir firmada Visual Basic altyapısı yardımıyla VBA'nın (Visual Basic Application) gücünün farkına varan yazar; Word, Excel ve CorelDraw altında otomasyon denemelerine başladı. Bu süreç içerisinde, otomatik sayfa yaptırımı, baskı öncesi hazırlık makroları üzerinde önemli kodlar geliştirdi. Buna bağlı olarak CorelDraw altında bir montaj programını da hayata geçirmiş oldu. <p>Daha sonra gelişmekte olan Web sektörüne geçiş yapıp 3 ortaklı bir firmaya dahil oldu ve; Asp, Flash, Dreamweaver, Action Script, Css, Html ve küçük çaplı 3d tasarımları üzerinde kendisini geliştirdi. <p> 2009 yılı sonunda bir firmanın davetlisi olarak gittiği Güney Amerika, Paraguay'da CorelDraw altında yaptığı VBA yazılımları ile otomasyon sistemini kurdu. Paket anlaşmanın bitmesinin ardından Türkiye'ye geri döndü. Çocuğunun doğumu nedeniyle yurtdışı ikinci çalışma etabını iptal etmek zorunda kaldı. <p>İyi derecede İngilizce ve orta derece İspanyolca bilen yazarımız özel dershanelerde 20 yıla yakın süredir Web Tasarım, Grafik, İşletmenlik ve 10 Parmak Klavye dallarında öğretim üyeliği mesleğini de sürdürmektedir.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

çokk pratik anlatıyorsunuzz :D
VBA... doğuştan pratik... ;)
Video'da ses yok sanırım anlaması biraz güç olcak ama bakalım teşekkür ederim
Hocam makroyu çalıştırdığımızda Save As "Kayıt Pencerisi" çıkıyor karşımıza o çıkmadan nasıl otomatik kaydetmesini sağlıyabiliriz.
X5 için sorun yok, temporary macro olarak kaydedebiliyor artık.

Yukarı Git