Yanıtınız için teşekkür ederim.
Libreoffice makroları konusundaki örneklere gerçekten çok ihtiyaç var. Bu konuda çok yönlü örnekler yapabilirseniz
oldukça faydalı olur. Çünkü yurtdışı kaynaklarında bile güzel örnekler bulamıyorum.
Buraya verdiğim VBA örneğini çalıştıramayınca Libreoffice Calc makro kaydet yoluyla oluşturduğum kodu düzenleyerek aynı sonuca ulaşmaya çalıştım. ilginç olan kod bazen çalışıyor bazen çalışmıyor. Çalışmadığı zamanlar buna ne engel oluyor birisi hariç tespit edemedim. Dosya uzantısı .xls ise kod çalışmıyor. En azından öyle görünüyor, ods olarak kaydedince çalıştı. Yine de bazı zamanlar ods uzantılı dosyalarda da çalışmıyor. Çok ilginç!
Ancak buradaki gereklilik kodun dosya içinde(OPEN OFFICE FILE FORMAT = ods uzantısı içinde) saklanmaması, genel alan dizininde saklanarak çalıştırılması ihtiyacı var. Bu alanda da vba kodu uyumluluk bildirimi(option vbasupport 1) yazsanız da çalışmıyor.
Makro kaydet ile Libre Basic olarak oluşturduğum kodu aşağıda paylaşayım. Belki takılma sorunu çözülebilir ve ihtiyacı olan yararlanabilir.
Libreoffice Sürümüm 6
Kod: Tümünü seç
REM ***** BASIC *****
sub SIFIRSIZkurusluF
rem -------MAKRO KAYDET ILE YAPILDI KISMEN UZERINE KOD EKLENDI(oSel)-------------
rem define variables
dim document as object
dim dispatcher as Object
dim oSel as object, oSheet as Object 'eklenen
rem ----------------------------------------------------------------------
rem get access to the document
oSheet=thiscomponent.getcurrentcontroller.activesheet 'aktif sayfayı oSheet değişkenine ata
oSel = ThisComponent.getCurrentSelection() 'seçili alanı oSel değişkenine ata
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = oSel ' Seçili alanı sözlük diziye ata (bu dizi nin özelliklerini bilmiyorum)
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NumberFormatValue"
args2(0).Value = 111 '"#.###,00;0;;;@" bu formatın karşılığı kod
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
end Sub