Etiketler

AutoCAD (132) çizim (57) youtube (56) kod (54) indir (43) VBA (41) Quickbasic (40) bedava (38) autocad vba (25) excel (24) Püf noktası (23) Download (19) Programlama (16) free (16) Office (15) AutoLisp (13) Lisp (13) excel vba (13) sürüm (10) yeni sürüm (9) Nasıl yapılır (8) E-book (7) PDF (7) Güncelleme (6) Word (6) template (4) Şablon (4) Visual Lisp (3) Basic (2) Portable (2) version (2) Yazılım (1)

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

Hiç yorum yok:

Yorum Gönder

Yazar Hakkında

Fotoğrafım
1989 yılında Metal İşleri öğretmeni olarak göreve başladı. 2020 yılında emekli oldu. Metal İşleri Öğretmenliği, İktisat, Fotoğrafçılık ve Kameramanlık Mezunudur. Youtuber ve Blog yazarıdır. Fotoğrafçılık, Programlama, Web tasarım, Gezi, AutoCAD, AutoLisp, SolidWorks, VBA, Visual Basic, QuickBasic, PHP ile ilgileniyor. Mesut Akcan hakkında