Merhabalar.
Ben iki buton koyup, butonlara ayrı ayrı yazdırma alanı belirlemek istiyorum ve yazdırmasını istiyorum. Yardımcı olabilir misiniz?
Belli alanları yazdırma
- Hamurcu
- Mesajlar: 265
- Kayıt: 06 Ağu 2012, 00:14
- İşletim Sisteminiz: Windows 10/11 - Pardus Linux
- LibreOffice Sürümü: 7.x
Re: Belli alanları yazdırma
Merhaba,
Bunun için aşağıdaki kodu kullanabilirsiniz.
Test etmek için yukarıdaki kod'un son satırında yeralan YAZDIR komutunu ' işareti ile Açıklama satırına dönüştürün (Yani etkisiz hale getirin) ve makroyu çalıştırın.
Sonrasında Çizelgenize baktığınızda (Baskı Önizleme ile) yazdırılacak alanın seçildiğini göreceksiniz.
İyi çalışmalar.
Bunun için aşağıdaki kodu kullanabilirsiniz.
Kod: Tümünü seç
Sub Yazdir
' Yazdırma alanı için bir matris tanımlıyoruz
Dim YazdirmaAlani(0) as New com.sun.star.table.CellRangeAddress
' Çalışma kitabımızı bir değişkene atıyoruz
CalismaKitabi = ThisComponent
' Calişma kitabındaki tüm Çalışma Sayfalarını bir değişkene atıyoruz
Sayfalar = CalismaKitabi.Sheets
' Çalışma Kitabındaki Toplam Sayfa Sayısını buluyoruz
SayfaNo = Sayfalar.Count
' 0. Sayfadan başlayarak, tüm sayfalardaki daha önceden belirlenmiş yazdırma alanlarını iptal ediyoruz
For i = 0 to SayfaNo - 1
Sayfa = Sayfalar.getByIndex(i)
' Array() boş bir matristir ve daha önceden belirli bir yazdırma alanı varsa üzerine boş matrisi yazarak sıfırlıyoruz
Sayfa.setPrintAreas(Array())
Next i
' Yazdırmak için hangi sayfayı seçeceğimizi ayarlıyoruz
YazdirilacakSayfa = Sayfalar.getByName("Çizelge1")
' Seçtiğimiz sayfadaki yazdırılacak alanı seçiyoruz
SecilenAlan = YazdirilacakSayfa.getCellRangeByName("B2:E6")
' Seçtiğimiz sayfadaki, seçtiğimiz alanı yazdırma alanı olarak atıyoruz
YazdirmaAlani(0) = SecilenAlan.RangeAddress
' Yazdırma alanını ayarlıyoruz
YazdirilacakSayfa.setPrintAreas(YazdirmaAlani())
' Yazıdırıyoruz
CalismaKitabi.Print(Array())
End Sub
Kod: Tümünü seç
' Yazıdırıyoruz
' CalismaKitabi.Print(Array())
İyi çalışmalar.