Word etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Word etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Mart 2024 Pazartesi

Word VBA: Belgedeki tüm resimleri aynı boyuta ayarla

Uzun yıllar önce(2015) donanimhaber forum sitesindeki sorulara cevap vermek için Word VBA makroları yazmıştım. Forumda cevap olarak verdiğim kodları gözden geçirip düzenledim ve burada yayınlıyorum.

Soru 1

Diyelim ki 80 sayfalık bir belge var elimizde ve her bir sayfada küçük birer adet resim var. Yani toplam 80 resim. Ben bunların her birini tek tek düzenleyerek sayfanın tamamına yaymadan, toplu ve otomatik olarak sayfanın tamamını kaplayacak şekilde nasıl yayarım?

Cevap 1

Aşağıdaki VBA makroyu kullanabilirsiniz. Alttaki kodlar tüm resimlerin genişliğini 10cm'e ayarlar.
genislik = 10 'cm
satırındaki 10 sayısını değiştirebilirsiniz.

'Mesut Akcan
'mesutakcan.blogspot.com
'Belgedeki tüm resimlerin genişliğini 10 cm'ye ayarlar
'Yükseklik orantılı değişir
Sub GenislikAyarla()
	Dim shp As InlineShape
	Dim genislik As Double
	genislik = 10 'cm
	Application.ScreenUpdating = False
	For Each shp In ActiveDocument.InlineShapes
		With shp
				.LockAspectRatio = msoTrue 'en/boy Orantısı sabit
				'.Height = (.Width / .Height) * CentimetersToPoints(genislik)
				.Width = CentimetersToPoints(genislik)
		End With
		DoEvents
	Next
	Application.ScreenUpdating = True
	MsgBox "İşlem Tamam!"
End Sub

Soru 2

Word VBA makro kodları nasıl çalıştırılır?

Cevap 2

Word programındayken, ALT+F11e bas.
Menüden Insert / Module tıkla. Açılan kod penceresine kodu ekle.
Word programında makro çalıştırmak için ALT+F8e bas makro adını seç. Çalıştır tıkla.

Soru 3

Üstteki makro sadece genişliği değiştiriyor. Ben belgede bulunan tüm resimlerin genişliğini 7, yüksekliğini 5 olarak ayarlamak istiyorum. Bunun için makro var mı?

Cevap 3

Aşağıdaki makroyu kullanabilirsiniz. Eğer orijinal resimleriniz 7x5 oranında değilse sünme olabilir.
'Mesut Akcan
'mesutakcan.blogspot.com
'Belgedeki tüm resimlerin genişliğini 7cm,
'yüksekliğini 5 cm'ye ayarlar
Sub GenislikVeYukseklikAyarla()
	Dim shp As InlineShape
	Dim genislik As Double
	Dim yukseklik As Double
	
	genislik = 7 'cm
	yukseklik = 5 'cm
	
	Application.ScreenUpdating = False
	For Each shp In ActiveDocument.InlineShapes
		With shp
			.LockAspectRatio = msoFalse 'en/boy Orantısı sabit değil
			.Height = CentimetersToPoints(yukseklik)
			.Width = CentimetersToPoints(genislik)
		End With
	Next
	Application.ScreenUpdating = True
	MsgBox "İşlem Tamam!"
End Sub

Soru 4

Bu makroyu çalıştırmada sorunum yok lakin makroyu Word'e kalıcı olarak nasıl ekleriz. Word her açılışında makroyu çalıştırabileyim.

Cevap 4

Word'ü açın. ALT+F11e basın. Ctrl+R ile Project bölmesini açın.
Bu bölmede Normal yazan proje adını seçin.
Menüden Insert / Module tıklayın.
Açılan kod penceresine makro kodunu ekleyin.
Ctrl+S ile kaydedin.

Artık makroyu her dosyaya eklemeye gerek olmadan kullanabilirsiniz.

Soru 5

Verilen kodları değiştirerek kullanmaya çalıştım ama başarılı olamadım.
Word dosyama eklediğim tüm resimlerin 3,47 inç 2,48 inç olmasını istiyorum. Bunun için gereken makro konusunda yardımcı olabilir misiniz?

Cevap 5

Aşağıdaki makro kodunu kullanın.
'Mesut Akcan
'mesutakcan.blogspot.com
'Belgedeki tüm resimlerin genişliğini 3.47 inç,
'yüksekliğini 2.48 inç olarak ayarlar
Sub GenislikVeYukseklikAyarla_2()
	Dim shp As InlineShape
	Dim genislik As Double
	Dim yukseklik As Double
	
	genislik = 3.47 'inç
	yukseklik = 2.48 'inç
	
	Application.ScreenUpdating = False
	For Each shp In ActiveDocument.InlineShapes
		With shp
			.LockAspectRatio = msoFalse 'en/boy Orantısı sabit değil
			.Height = InchesToPoints(yukseklik)
			.Width = InchesToPoints(genislik)
		End With
	Next
	Application.ScreenUpdating = True
	MsgBox "İşlem Tamam!"
End Sub

19 Kasım 2023 Pazar

Word: Aynı belgede yatay ve dikey sayfalar yapma

Yayınlama: 22/12/2013
Güncelleme: 19/11/2023
Bir Word belgesinde sayfa ayarlarında yapılan değişiklikler genellikle tüm sayfalara uygulanır. Ancak, belirli durumlarda bir veya birkaç sayfanın diğerlerinden farklı bir düzen içermesi gerekebilir. Örneğin, sayfa yapısının normalde dik olduğu bir belgede, belirli bir sayfanın yatay olması istenebilir.

Bu tür durumları yönetmek için sayfaları bölümlendirmek gerekir. İşlem şu adımları içerir:
  • İmleci bölüme ayrılacak sayfanın başına getirin, örneğin, 2. sayfanın başı (eğer 2. sayfa yoksa, 1. sayfanın sonuna) veya istenen konumda (bu durumda konumdan sonraki içerikler bir sonraki sayfaya taşınır).
  • Menüden;
    SAYFA DÜZENİ / KESMELER / SONRAKİ SAYFA (Word 2013)
    EKLE / KESME / SONRAKİ SAYFA (Word 2003)
    seçeneğine tıklayın.

  • Bu adımdan sonra belge, imleç öncesi ve sonrası olmak üzere iki bölüme ayrılır. Ayrıca, ihtiyaç duyulursa başka bölümler ekleyebilirsiniz.
Artık her bir bölümü diğerlerinden bağımsız olarak sayfa yapısı ayarlayabilirsiniz.

Örneğin, 2. bölümü yatay yapmak için:
  • Menüden;
    SAYFA DÜZENİ / YÖNLENDİRME / YATAY (Word 2013)
    DOSYA/ SAYFA YAPISI / KENAR BOŞLUKLARI / YATAY  (Uygulama yeri: Bu bölüme) seçeneğine tıklayın (Word 2003).

29 Ekim 2023 Pazar

VBA'da Erken Bağlama ve Geç Bağlama

VBA (Visual Basic for Applications) Microsoft Office uygulamalarını özelleştirme ve otomasyon için yaygın bir şekilde kullanılan bir araçtır. Ayrıca AutoCAD, SolidWorks gibi programlarda eklenti olarak kullanılmaktadır.

VBA nesnelerle etkileşim kurarken iki farklı bağlama türü kullanılır.

  1. Erken bağlama (Early binding)
  2. Geç bağlama (Late binding).

Bu yazıda, her iki bağlama türünü açıklayacak ve hangi durumda hangi türün kullanılması gerektiğini inceleyeceğiz.

1) Erken Bağlama

Erken bağlama nedir?

Erken bağlama(early binding), VBA kodunun nesnelerin ve metodların türünü ve özelliklerini tasarım zamanında tanımladığı bir bağlama türüdür. Erken bağlama, VBA kodunun daha hızlı çalışmasını sağlar ve daha fazla tür güvenliği sunar. Ayrıca, IntelliSense gibi kod geliştirme araçlarına daha fazla destek sağlar.

Erken bağlamanın avantajları

  • Performans: Erken bağlama, VBA kodunun daha hızlı çalışmasını sağlar. Çünkü nesnelerin ve yöntemlerin türleri tasarım zamanında bilindiği için, derleyici daha iyi optimize edebilir.
  • Tür Güvenliği: Erken bağlama, kodunuzun daha güvenli hale gelmesini sağlar. Çünkü türler ve yöntemler tasarım zamanında belirlendiği için, hatalı türlerle veya eksik yöntemlerle çalışma riski daha düşüktür.
  • Kod Hata Ayıklama: Erken bağlama ile kod hata ayıklamak daha kolaydır. Çünkü nesnelerin ve yöntemlerin türleri belirli olduğu için, hata ayıklayıcı daha fazla yardımcı olabilir.
  • IntelliSense Desteği: Erken bağlama, kod yazarken IntelliSense(akıllı kod tamamlama) gibi kod geliştirme araçlarının kullanımını destekler. Bu, kodunuzu daha hızlı ve hatasız bir şekilde yazmanıza yardımcı olur.
  • Kodun Okunabilirliği: Erken bağlama ile çalışırken, kodunuz daha okunabilir hale gelir. Çünkü nesnelerin ve yöntemlerin türleri ve özellikleri açıkça belirtilir.
  • Referans Yönetimi: Erken bağlama, projenizin referanslarını daha iyi yönetmenizi sağlar. Referansları eklemek ve kaldırmak daha kolaydır.
  • Dokümantasyon Desteği: Erken bağlama, nesnelerin ve yöntemlerin tasarım zamanında belirlendiği için, daha iyi dokümantasyon sağlar. Bu, başkalarının kodunuzu daha iyi anlamasına yardımcı olur.
  • Kodun Daha İyi Anlaşılması: Erken bağlama ile çalışırken, kodun ne yaptığı daha açık bir şekilde anlaşılır. Çünkü türler ve yöntemler adından ve belirli olduklarından, kodun amacı daha belirgin hale gelir.
Erken bağlama, özellikle büyük ve karmaşık projelerde, performans ve güvenlik açısından büyük avantajlar sunar. Ancak, belirli durumların gerektirdiği esneklik ve uyumluluk ihtiyaçlarına göre geç bağlama (late binding) veya karışık bir yaklaşım kullanmak da gerekebilir. Projenizin ihtiyaçlarına ve hedeflerine bağlı olarak doğru bağlama türünü seçmek önemlidir.

Erken bağlamanın dezavantajları

  • Versiyon Uyumsuzluğu: Erken bağlama, belirli bir sürümün nesnelerini ve özelliklerini kullanmayı gerektirir. Bu, uygulamanın daha yeni veya daha eski sürümleri ile uyumsuzluk sorunlarına yol açabilir. Kodunuzu bir sürümden diğerine taşırken düzenlemeler yapmanız gerekebilir.
  • Dosya Boyutu: Erken bağlama kullanırken, projenizin dosya boyutu artabilir. Çünkü erken bağlama referanslarını projenize eklediğinizde, bu referanslar projenizin boyutunu artırabilir. Bu, dosyanın taşınabilirliğini ve paylaşılabilirliğini azaltabilir.
  • Yavaş Geliştirme: Erken bağlama ile çalışırken, IntelliSense gibi kod geliştirme araçları daha iyi çalışsa da, bazı durumlarda daha fazla kod yazma işlemi gerekebilir. Bu, kodunuzu geliştirmenin daha fazla zaman almasına neden olabilir.
  • Referans Yönetimi: Erken bağlama kullanırken, projenize eklediğiniz referansları yönetmek zor olabilir. Özellikle başka bir bilgisayara taşındığında veya farklı bir VBA ortamında çalıştırıldığında referansların eksik veya hatalı olması sorunlara yol açabilir.
  • Esneklik Sorunları: Erken bağlama, projenizin esnekliğini azaltabilir. Eğer uygulamanın veya nesne modelinin belirli bir sürümüne bağlı kalırsanız, yeni özelliklere veya sürümlere uyum sağlama konusunda kısıtlamalarla karşılaşabilirsiniz.
  • Hata Ayıklama: Erken bağlama, hata ayıklamayı bazen zorlaştırabilir. Çünkü nesne türleri ve özellikleri kodun yazıldığı anda belli olur ve çalışma zamanında değiştirilemez. Bu, hataların nedenlerini bulmayı zorlaştırabilir.

Bu dezavantajlar, projenizin gereksinimlerine ve çalışma koşullarına bağlı olarak değişebilir. Erken bağlama ve geç bağlama (late binding) arasında doğru dengeyi bulmak, projenizin ihtiyaçlarına uygun bir şekilde kod yazmanıza yardımcı olabilir.

Erken bağlama kullanımı:

Erken bağlama kullanmak için öncelikle hedef uygulamanın veya nesne modelinin referanslarını eklemeniz gerekir.

21 Kasım 2015 Cumartesi

Word: Bul Değiştir ile bulunan sayının başına 0 ekleme

Word'de metin içinde bulunan sayıların başına 0 eklemek istersek Word'ün bul ve değiştir özelliğinden faydalanabiliriz.

Bul ve Değiştir'e kısayoldan erişmek için klavyeden CTRL+H tuşlarına basın.
Tüm seçenekler açık değilse Tüm seçenekler butonunu tıklayın.

Aranan kısmına:
<([0-9])*([0-9])>
Yeni değer kısmına:
0^&
yazın. Joker karakter kullan seçeneğini seçin.
Sonra tümünü değiştir ile bulunan tüm sayıların başına 0 eklenir.
Tek tek değiştirmek isterseniz Sonrakini bul ve Değiştir butonlarını kullanabilirsiniz.


<([0-9])*([0-9])>
joker karakterleri bir rakam ile başlayıp bir rakam ile biten metinleri bulur.
0^&
joker karakterlerinin açıklaması ise:
^&
kodu aranan metini temsil eder. 0 ise bulunanın başına 0 eklemek içindir.

12 Ekim 2012 Cuma

Klasör ve dosya listesi oluşturma

Bir klasördeki dosyaların listesini oluşturma ihtiyacı olduğu zamanlar olmuştur.
Bu işi yapan özel programlar olsa da sık sık kullanmadığımız bir işlem olduğu için programı el altında bulundurmayız.
Aşağıda gösterilecek yöntemler her bilgisayarda uygulanabilecek yöntemlerdir.

Bu iş için birkaç yol var. Bunlar:

1) Dos komut satırında DIR komutu ile
Başlat/Çalıştır tıklanıp CMD ile Dos komut satırına ulaşabilirsiniz.
DIR komutu belirtilen klasör içindeki dosya ve klasörleri listeler. Klasör belirtilmez ise aktif klasör kabul edilir. Aktif klasörün ne olduğu komut satırında imleç solunda yazar. CD komutu ile aktif sürücünün aktif klasörü belirlenebilir

C:
CD \WINDOWS\FONTS
gibi.

DIR
komutu ile ekrana liste alınır. Liste uzun değilse ekrandaki liste kopyalanabilir. Bunun için DOS penceresinde sağ tıklayın / İşaretle / Fare ile gerekli kısmı işaretleyin. Kopyalamak için klavyeden ENTER'e basın

DIR listesini ekran yerine bir dosyaya yönlendirebiliriz(yazdırabiliriz). Yönlendirecek dosyayı > işareti ile belirtiriz. Örneğin

DIR >c:\dosyalistesi.txt
Ekrana çıkması gereken liste c:\dosyalistesi.txt dosyasında olacaktır.

DIR *.txt
uzantısı txt olan dosyalar listelenir.


DIR /B
yalnızca dosya ve klasör adları listelenir. Ekstra bilgiler olmaz. Tarih, boyut vs.

17 Ekim 2010 Pazar

Word 2010 için Advanced Mathematics eklentisi

Word 2010'da Matemetiksel formüller eklemek için Ekle menüsünde Denklem kullanılır.
Kısayol: ALT+SHIFT+=.
Word ile gelen denklem araçları birçok formülü ve matematiksel simgeyi eklememizi kolaylaştırıyor.
Buradaki özellikler yeterli bulmayanlar için Word 2010 için Advanced Mathematics eklentisi bulunuyor. Microsoft tarafından üretilmiş. Sitesinden indirip kurulumu yaptığınızda yeni menü ve özellikler ekleniyor.
Formülü hesaplama(Compute) ve Graph(Formül Grafiği) özellikleri kullanılmaya değer.
Üstteki gibi Word içine formül ve grafiğini ekleyebilirsiniz.
Bir başka formül ve grafiği. Grafiği eklemek için formül seçili iken Graph / Plot in 2D tıklayın.
Aynı formülün 3 boyutlu grafiği. Graph / Plot both sides in 3D tıklayın.