• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Makroda sütun genişiliği piksel olarak verilebilir mi?

  • Konbuyu başlatan Konbuyu başlatan klop01
  • Başlangıç tarihi Başlangıç tarihi

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
661
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Aşağıdaki kodda A sütunun piksel genişliğini 38 olarak ayarlamak istiyorum. Kodun sonundaki değer cm mi ölçüyor, nedir anlayamadım.
Bu kod parçacığı piksel değerini gösterecek şekilde ayarlanabiliyor mu?
Columns("A").ColumnWidth = 4.4
 
Bu kodu bir deneyin.
Kod:
[a1] = ActiveCell.ColumnWidth / 37.795
 
Klop01 merhaba,

Dosya > seçenekleri > Gelişmiş > Görüntü > Cetvel birimlerinden örneğin milimletreyi seçtikten sonra Pixel karşılığını kolon ve hücre boylarında görebiliyorsun

COnvert etmelisin 1 Milimetre 3,77 Pixel yapar.
 
Sayın @Seyit Tiken ve @Trilenium,
Açıklamalar için teşekkürler.
Şunu yapmak istiyorum: Kodu çalıştırınca gittiğim sayfada A sütunun 38 piksel olması.
Yani üstte verdiğim kod parçacığı piksel olarak yazılabilir mi?
 
Bu şekilde deneyiniz.
Kod:
Columns("A").ColumnWidth = 4.7
 
Sayın Tiken,
Soruna aslında şu kaynaklık ediyor. Bir bilgisayarda hazırladığım belge ekrana tam sığıyor. Diğer bilgisayarda A sütunu 1 piksel genişliyor ve sayfaya sığmıyor. Ben de sayfaya giderken bunu piksel olarak ayarlayayım dedim.
Sizin verdiğiniz gibi yazınca da farklı bilgisayarlarda piksel değeri değişiyor.
Columns("A").ColumnWidth = 38(Piksel) gibi bir şey olursa sorunu çözebilir diye düşündüm de sorayım dedim.
Zannediyorum kodlarda sütun genişlikleri piksel olarak ayarlanamıyor.
Benim bilgisayarda Columns("A").ColumnWidth = 4.4 olunca A 38 Piksel oluyor. Sizde 4.7 ile 38 piksel oluyor galiba.
 
Böyle durumlarda pratik çözümlere başvurmak lazım, kodla pikseli azaltıp yükseltebilirsin.
 
.

Piksel Ekran çözünürlüğüne bağlıdır. Buradaki kodu inceleyin. Bir fikir verir.


Kod:
Sub testsutgen()

Sheets("Sheet1").Activate

Ekrancoz = 96 '96/inch

Point = Sheets("Sheet1").Range("A1").Width ' 48 points

karak = Sheets("Sheet1").Range("A1").ColumnWidth ' 8.43 karekter

pixel = (Point / 72) * Ekrancoz 'pixel

MsgBox "Point:" & Point & "  " & "Karakter:" & karak & "  " & "Piksel:" & pixel

End Sub


Ayrıca buradaki dosyaya bir göz atın..



.
 
İlave bilgi:

Yeni bir Excel dosyası açtığınızda; sütun genişlikleri 8,43 karakter (64 Pixel) olarak ayarlanmış olduğunu görürsünüz..... (En azından, benim Excel 2010 için böyle).

Ama, bu değerler Excel'in varsayılan Font'u "Calibri" ve Font Boyutu =11 için geçerlidir.....

Yani, başka bir Font veya Font yüksekliği olsa; söz konusu değerler değişecektir......

Dolayısıyle; bu değerlerin arasında matematiksel bir ilişki var.

96 DPI için; Font "Calibri" ve Font Boyutu =11 ise, bu ilişki;

Kod:
(7 x 8,43) + 5 = 64


Burada, "7" değeri Font "Calibri" ve Font Boyutu =11 için karakter genişliğidir. "5" ise; söz konusu Font ve Font Büyüklüğüne göre değişen bir değer olup, hücrenin marjinidir. Söz konusu Font ve Font Büyüklüğündeki bir sayfada sütun genişliğini "1" yaptığınızda bunu "12 pixel" olarak görebilirsiniz (7 + 5 = 12)

Dolayısıyle; 96 DPI için kullanılan Fonttaki gerekli karakter genişliği, marjin ve "8,43" veya "64" değerlerinden birini biliyorsak, diğerini hesaplayabiliriz.....


.
 
Son düzenleme:
İşe yarayabilir...
.

C#:
Sub test()
    Dim points As Double, cm As Double, pixel As Long
    
    cm = 1
    
    points = Application.CentimetersToPoints(cm)
    
    pixel = WorksheetFunction.Round(points / 0.75, 0)
    
    MsgBox pixel
    
End Sub


.
 
Geri
Üst