Macroları Open ofis te kullanma

Bu makalemizde OpenOffice.org kullanan arkadaşlarımızın sürekli şikayetçi oldukları bir konuya değineceğiz. Sık sık bana sorulan sorulardan bir tanesi ?Ben Microsoft Office?te Visual Basic kullanarak birçok işimi hallediyordum ama

OpenOffice.org?da nasıl yaparım?? sorusu olmuştur. Elbette bu iki ayrı yazılım arasında %100 uyumdan bahsetmek mümkün değil ancak BASIC program yazmasını bilen arkadaşlar için de durum bu kadar vahim değil. Çok kısa bir uyum sürecinden sonra eski belgelerini OpenOffice.org BASIC?e rahatlıkla çevirebilirler. Üstelik bununla da yetinmeyip, Basic dışında Java, Python, BeanShell gibi diğer programlama dillerini de kullanabilirler.

01_oocalc_1280_1024(2).png

OpenOffice.org BASIC ile Visual BASIC dil yapıları çok benzerdir. Ancak az önce de bahsettiğimiz gibi benzer olmaları, %100 aynı olmalarını gerektirmiyor. Takdir edersiniz ki, her iki ofis paketi, farklı felsefelere sahip iki farklı yazılımlardır. Bu yüzden aralarında farklılıklar olması gayet doğaldır. Makalemizde amacım, sizlere yardımcı olabileceğini düşündüğüm benzerlikler ve farklılıkları tablolar halinde vererek, Visual Basic bilen arkadaşların Pardus üzerinde OpenOffice.org BASIC ile program yazmalarına yardımcı olmaktır.

Öncelikle Microsoft Office içerisinde kullandığımız Basic programlama dilinden biraz bahsedelim. Birçok arkadaşımızın sadece Visual Basic diyerek geçiştirdiği programlama dili, aslında son zamanlarda epeyce farklılıklar gösterdi ve kendi içerisinde de bir uyum problemi yaşamakta. Visual Basic bildiğiniz gibi Windows üzerinde program geliştirmenizi sağlayan bir IDE ortamıdır. Benzer kelimelerle MS Office içerisinde ise Scripting Language (betikleme dili) dediğimiz Visual Basic?nin bir türevi olan VBA (Visual Basic for Applications) kullanırsınız. VBA ile MS Office?ten bağımsız programlar yazmanız mümkün değildir. Günümüze geldiğimizde Visual Basic ve VBA?ya bir de VB.NET eklenmiştir. Buradan da anlaşılacağı üzere genellikle Visual Basic deyip geçiştirdiğimiz konu aslında kendi içerisinde de farklı parçalara ayrılmıştır. Bu yüzden sizlere tabloları verirken elimden geldiğince tüm Visual Basic türlerini vermeye çalışacağım.

Visual Basic makrolarını OpenOffice.org Basic?e dönüştürürken ilk yapılması gereken, yazım hatalarını düzeltmek olacaktır. Eski ofis programınızda yazdığınız makrolar doğrudan OpenOffice.org Basic ile uyumlu olmadığından, elle yazım hatalarını düzeltmeniz gerekir. Bu düzeltim için aşağıda sizlere verdiğim tablolardan faydalanabilirsiniz.

İkinci adımsa diller arasındaki davranış farklılıklarından doğan hataları yok etmek. Bu hatalar bazı durumlarda aynı komutu kullanmasına karşın her iki ofis yazılımının da farklı davranışlar göstermesinden kaynaklanıyor olabilir. Özellikle ince hataların dikkatle kontrol edilmesi  gerekiyor. Tam bir dönüşüm için sadece aynı yazım kurallarını çevirmek yerine anlamlı kod değişikliklerini yapmalısınız.

İlk tablomuz OpenOffice.org Basic?in kullandığı ancak Visual Basic?den VB.NET?e geçiş sırasında değişikliğe uğrayan ve OpenOffice.org Basic ile farklılık gösteren komutların bulunduğu tablo.

OOo Basic ve VB farkliliklar

Veri Tipleri

veri tipleri

Değişkenler

  • VB.NET, Variant değişken tipini desteklemez, bununla birlikte değişkenler zaten nesne olarak tanımlanmışlardır. Diğer Visual Basic sürümleri OpenOffice.org BASIC ile uyumludur.
  • VB.NET, Currency veri tipi yerine Decimal veri tipini kullanmaktadır. Diğer Visual Basic sürümleri OpenOffice.org BASIC ile uyumludur.
  • VB.NET, DefBool, DefDate, DefDbl, DefInt, DefLng, DefObj, ve DefVar veri tiplerini desteklemez. Diğer Visual Basic sürümleri OpenOffice.org BASIC ile uyumludur.
  • VB.NET, Set ve Let komutlarını desteklemez.
  • VB.NET, NULL ve Empty komutlarını desteklemez.
  • OpenOffice.org BASIC, sabit uzunluktaki String veri tipini desteklemesine karşın (Dim s As String * 100), aslında değişken uzunluğa sahip bir String?tir. Tüm Visual Basic sürümleri sabit uzunluğa sahip String?leri destekler.
  • OOo BASIC, String veri tipinin limiti 65,535 Unicode karaktere kadardır. Visual Basic, değişken uzunluklu String veri tipi ise yaklaşık 2 Milyar Unicode karakterdir.

Diziler (Matrisler)

  • VB.NET, Option Base?i desteklemesine karşın diğer Visual Basic sürümleri OpenOffice.org BASIC ile tam uyumlu değildir.
  • VBA ve VB6 Option Base?i destekler ancak, OpenOffice.org BASIC?teki gibi değildir. Dizinin üst sınırını belirlemek yerine, sadece alt sınırını ayarlar.
  • Visual Basic, sadece ReDim?i kısıtlı olarak destekler. OpenOffice.org BASIC ise çok boyutlu diziler dâhil tüm boyut değişikliklerini destekler.
  • Visual Basic, sadece ReDim?i kısıtlı olarak destekler. Özellikle dizinin boyutunu değiştirmek ancak dizi boyutunun açıkça tanımlanmamış olması durumunda mümkündür. OpenOffice.org BASIC daha esnektir.

Fantacy Wallpaper 2.jpg

Subroutine ve Function Yapıları

  • Visual Basic, Sub veya Function?a, Public gibi opsiyonel kapsam komutlarının önünde olmasına izin verir. OOo BASIC vermez.
  • Visual Basic, opsiyonel komut olan ByRef?i destekler. Bu komut OpenOffice.org BASIC tarafından desteklenmez.
  • Visual Basic, ParamArray komutunu destekler, OpenOffice.org BASIC desteklemez.
  • Visual Basic, default parametreleri destekler, OpenOfice.org BASIC desteklemez.
  • VB.NET, IsMissing fonksiyonunu desteklemez; bu varsayılan parametrelerle birlikte tanımlanır. Diğer Visual Basic sürümleri OpenOffice.org BASIC ile uyumludur.

Operatörler

  • VB.NET, EQV veya IMP operatörlerini desteklemez. Diğer Visual Basic sürümleriı OpenOffice.org BASIC ile uyumludur.
  • VB.NET, Like, AndAlso ve OrElse gibi ekstra operatörleri destekler.
  • Visual Basic?te öncelik kurallarında farklılılar vardır. Örneğin, AND?in önceliği OR?dan öncedir, aynı şekilde XOR?dan da öncedir.
  • Visual Basic, String?lerin  karşılaştırılmasını kontrol eden Option Compare?i destekler. Bu OpenOffice.org BASIC ile uyumlu değildir. Bunun yerine StrComp fonksiyonunu kullanın.
  • VB.NET standart matematik düzenini kabul etmesine karşın üs almak konusunda bir farklılık vardır. Örneğin, Visual Basic?de -2^2 = -4 olurken OpenOffice.org BASIC?te 4 olacaktır.

Akış Kontrolü

  • VB, For Each … Next Loop yapılarını desteklemesine karşın OpenOffice.org BASIC desteklemez.? VB.NET, GoSub komutunu desteklemez.
  • VB.NET, On GoTo ve On GoSub komutlarını desteklemez.

Hata Yakalama

  • Visual Basic, hataları yakalayabilmek için Err nesnesini kullanır.OpenOffice.org BASIC ise Err, Error, ve Erl adında üç farklı fonksiyon kulanır.
  • Visual Basic?nin bazı sürümleri On Error GoTo -1 yapısını destekler.
  • Visual Basic?nin bazı sürümleri tüm hata yakalamalarının benzersiz isim kullanmasına ihtiyaç duyarken, OpenOffice.org BASIC buna ihtiyaç duymaz.
  • OpenOffice.org BASIC, Subroutine veya Function dışındaki On Error komutlarını desteklemez.

Subroutine ve Function

Visual Basic ve OpenOffice.org Basic büyük oranda uyumlu olmalarına karşın VB.NET ile birlikte ortak bazı Subroutine ve Functionlarda değişiklikler olmuştur. Farklılıklar için aşağıdaki tabloyu inceleyiniz.

fonksiyonlar

Sonuç

Yukarıdaki tablolarda görebileceğiniz gibi OpenOffice.org Basic ve Visual Basic türevleri arasında gerek yazım olarak gerekse işlev olarak ufak farklılıklar mevcut. Bu yüzden eskiden hazırlamış olduğunuz ve içerisinde Visual Basic makroları kullandığınız belgelerinizi %100 uyum ile OpenOffice.org?ta açmanız pek mümkün değildir. Bu yüzden yukarıdaki tavsiyelerimize uyarak öncelikle makrolarınızı yeniden gözden geçirmeniz ve OpenOffice.org Basic ile uyumlu hale getirmeniz gerekir.

Bu konuyla ilgili olarak İnternet?te çok sayıda belge bulabilirsiniz. Ben de makaleyi hazırlarken 3-4 farklı belgeden bir derleme yaptım. Umarım işinize yarar.

Bana Ders Anlat © 2008-2022