Google Reklamları =)

Hakan Özdemir

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

İ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. )

http://img.sanalkurs.net/uploads/drs10_01.jpg

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.
http://img.sanalkurs.net/uploads/drs10_02.jpg

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.
http://img.sanalkurs.net/uploads/drs10_03.jpg

Ş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.)
http://img.sanalkurs.net/uploads/drs10_07b.jpg

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.)
http://img.sanalkurs.net/uploads/drs10_06.jpg

Alışkanlık edinmemiz açısından modülün de adını değiştirelim. Ben saveet diye bir ad verdim.
http://img.sanalkurs.net/uploads/drs10_08.jpg

Ş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..
Google Reklamları =)
Tekil:56 | Çoğul:1080 | Çevrimiçi:

=> Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=