makro etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
makro 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

8 Kasım 2023 Çarşamba

AutoCAD ile VBA Makro Kullanımı #6-3

Yayınlama: 9/4/2020
Güncelleme: 8/11/2023


Slot(oyuk) çizen VBA makro kodları:

31 Ekim 2023 Salı

AutoCAD VBA ile dikdörtgen çiz

AutoCAD ile VBA kullanarak dikdörtgen çizme işlemi oldukça basit ve verimlidir. AutoCAD VBA'yı kullanmak için öncelikle AutoCAD'in yüklü olması ve VBA'ın etkinleştirilmiş olması gerekmektedir.


İşlem basamakları:
  • AutoCAD'i açın.
  • ALT+F11 ile VBA kod editörünü açın.
  • Menüden Insert  / Module tıklayın.
  • Açılan Module1 kod sayfasına aşağıdaki kodları ekleyin.
'Dikdörgen çizen prosedür
'Mesut Akcan
'31/10/2023
'makcan@gmail.com

'Blog sayfam     : https://mesutakcan.blogSpot.com
'Youtube Kanalım : https://www.youtube.com/mesutakcan
'WhatsApp kanalım: https://www.whatsapp.com/channel/0029Va5h4cQ0LKZLuB9Dpy23
'Telegram kanalım: https://t.me/mesutakcan

Public Sub dikDortgenCiz(p As Variant, genislik As Double, yukseklik As Double, _
	Optional dondurmeAcisi As Double = 0, Optional yuvarlatmaYariCapi As Double = 0, _
	Optional polyLine As Boolean = True)
    
    'köşe noktaları. X
	Dim x1 As Double, x2 As Double, x3 As Double, x4 As Double 
    'köşe noktaları. Y
	Dim y1 As Double, y2 As Double, y3 As Double, y4 As Double

	Dim vl As Variant 'vertex listesi
	Dim util As Object 'nesne tanımla
	Dim pl As AcadLWPolyline 'Polyline nesnesi

	Set util = ThisDrawing.Utility 'utility nesnesi
	
	' Köşe noktalarının X değerleri
	x1 = p(0)
	x2 = x1 + yuvarlatmaYariCapi
	x4 = x1 + genislik
	x3 = x4 - yuvarlatmaYariCapi
	
	' Köşe noktalarının Y değerleri
	y1 = p(1)
	y2 = p(1) + yuvarlatmaYariCapi
	y4 = p(1) + yukseklik
	y3 = y4 - yuvarlatmaYariCapi
	
	If yuvarlatmaYariCapi > 0 Then 'dikdörtgen köşelerinde yuvarlatma yapılacaksa
		'vl dizi değişkenine köşe(vertex) noktalarını aktar
		util.CreateTypedArray vl, vbDouble, x2, y1, x3, y1, x4, y2, x4, y3, x3, y4, _
			x2, y4, x1, y3, x1, y2
	Else 'yuvarlatma yapılmayacaksa
		'vl dizi değişkenine vertex noktalarını aktar
		util.CreateTypedArray vl, vbDouble, x1, y1, x4, y1, x4, y4, x1, y4
	End If
	
	'polyline dikdörtgeni çiz
	Set pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(vl)
	pl.Closed = True 'kapalı şekil
	
	'bulge değeri: Tanjant(Yuvarlatlacak vertek noktalarının gördüğü açı / 4)
	'bulge değeri = Tanjant(Açı/4) => Açı=90° => pi/2
	' =Tan(90°/4) => Tan((pi/2)/4) => Tan(pi / 8)
	Const bd As Double = 0.414213562373095  ' Tan(pi / 8)
	
	'dikdörten köşelerinde yuvarlatma yapılacaksa
	If yuvarlatmaYariCapi > 0 Then
		pl.SetBulge 1, bd
		pl.SetBulge 3, bd
		pl.SetBulge 5, bd
		pl.SetBulge 7, bd
	End If

	'dikdörtgen döndürülecekse
	If dondurmeAcisi > 0 Then
		Const pi As Double = 3.14159265358979 'pi sabiti
		pl.Rotate p, dondurmeAcisi * (pi / 180)
	End If

	'Dikdörtgen çizgi ve yay ile çizilecekse çizimi patlat
	If polyLine = False Then pl.Explode
End Sub
Dikdörtgençiz prosedürünü kullanmak için örnek
  • Aşağıdaki kodları ThisDrawing kod sayfasına ekleyin.
  • VBA editöründe çalıştırmak için F5
  • AutoCAD ekranında çalıştırmak için ALT+F8
Sub dikDortgenCizOrnekKullanim()
	n = ThisDrawing.Utility.GetPoint(, "Dikdörtgen sol alt köşe noktası:")
	Call dikDortgenCiz(n, 30, 20)
	Call dikDortgenCiz(n, 50, 30, 5)
	Call dikDortgenCiz(n, 60, 35, 15, 10)
	Call dikDortgenCiz(n, 80, 45, 25, 12, False)
End Sub

13 Ağustos 2023 Pazar

Excel VBA: Aktif hücre renklendirme

Excel VBA makrosu kullanarak, Excel tablosundaki aktif hücreleri renklendirerek hücre takibini yapmak  kolaylaştırılabilir.

Bu işlem için aşağıdaki VBA makro kodunu kullanabilirsiniz.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
	'Mesut Akcan
	'13/8/2023
	'mesutakcan.blogspot.com

	'Geri Al (Ctrl + Z) çalışmaz
	Static oncekiHucre As Range, zeminRengi As Long
	' Önceki hücrenin zemin rengini geri yükle
	If Not oncekiHucre Is Nothing Then
		oncekiHucre.Interior.ColorIndex = zeminRengi
	End If
	' Aktif hücre zemin rengini aktar
	zeminRengi = Target.Interior.ColorIndex
	' Aktif hücrenin zemin rengini sarı yap
	Target.Interior.ColorIndex = 6 'sarı renk
	' Aktif hücre bilgilerini aktar
	Set oncekiHucre = Target
End Sub

18 Temmuz 2023 Salı

AutoCAD ile VBA Makro #7. Dikdörtgen çizimi

AutoCAD VBA makro kodlarıyla dikdörtgen çizen kodlar videolarda açıklandı.
  1. Line ile dikdörtgen


  2. Polyline ile dikdörtgen
  3. Merkez ile dikdörtgen

  4. Paralelkenar

  5. Üç nokta ile dikdörtgen

17 Temmuz 2023 Pazartesi

AutoCAD ile VBA Makro #8. Yıldız

AutoCAD VBA makro kodlarıyla yıldız çizen kodlar videolarda açıklandı.

Yıldız 1


Yıldız 2-1


Yıldız 2-2


Yıldız 3


Yıldız 4


Yıldız 5


Yıldız 6,7,8,9



13 Aralık 2022 Salı

Excel satırlarını belli sayıda bölme ve dosya veya sayfalara aktarma

Yayınlama: 20/02/2021
Güncelleme: 13/12/2022
Donanım Haber Forumundaki bir soru üzerine cevap olarak verdiğim Excel VBA kodlamaları buraya aktarıyorum.

Soru 1

Elimde içerisinde 40.000 satır veri bulunan bir Excel dosyası var. Bu 40.000 satırı 100'erli olarak bölmem gerekiyor.

Cevap: Aşağıdaki yazdığım VBA makrosu ile 100'erli satır olarak yeni eklenen sayfalara aktarılmaktadır.
Makroları kullanmak için;
Excel dosyası açıkken;
Excel durum çubuğundaki sayfa adında sağ tıkla / Kod görüntüle
Kod alanına aşağıdaki kodları ekle
Çalıştırmak için F5e bas ya da Excel'e geç / ALT+F8e bas makroyu seç / Çalıştır.

Sub SatirlariSayfalaraAktar_v1()
 'Excel satırlarını 100'erli olarak bölüp yeni sayfalara aktarır
 'makro: Mesut Akcan
 '15 Eylül 2018
 For n = 1 To Cells.SpecialCells(xlLastCell).Row Step 100
     satirlar = Str(n) & ":" & Trim(Str(n + 99))
     Rows(satirlar).EntireRow.Copy
     Sheets.Add After:=ActiveSheet
     ActiveSheet.Paste 
     DoEvents
 Next
 Sheets(1).Activate
 End Sub

Soru 2

Bu 100'lü bölümleri farklı yeni Excel dosyası olarak kaydedebilir miyiz.

1 Eylül 2022 Perşembe

AutoCAD ile makro kaydı yapma ve çalıştırma

 

Autocad, işlemleri otomatikleştirmek için çeşitli seçenekler sunar. Bu seçeneklerden en kolay ve basit olanı action (eylem) makrosudur. Sık tekrar edilen işlem basamaklarının kaydı alınıp kolaylıkla çalıştırılabilir.

Eylem makrosunun AutoCAD VBA makro ile ilgisi yoktur.
Bu videoda basit işlemlerle makro kaydı nasıl yapılır açıkladım. Sonrasında ise Türk bayrağı çizen makro oluşturuldu.


4 Mayıs 2022 Çarşamba

Excel: Aktif satır ve sütun renklendirme

Yayınlama: 19/06/2016
Güncelleme: 04/05/2022
Makro kullanarak Excelde aktif satır ve sütunu renklendirerek hücre takibi yapmak kolaylaştırılabilir.
Bu işlem için üç farklı VBA makro kodu veriyorum.
Kodları deneyip uygun olanını kullanabilirsiniz.

Makro eklemek için önce aşağıda verilen makro kodunu kopyalayın.
Excelde sayfa adı(Sayfa1, Sayfa2 ...) üzerinde sağ tıklayın
Açılan menüde Kod görüntüle tıklayın.

29 Mart 2022 Salı

AutoCAD VBA #28. Çizgiye Nokta-4



Youtube koni açınımları videolarında kullandığım çizgiye nokta VBA makrosunun geliştirmeye devam ediyorum.
Makro çalıştırıldığında bir çizgi seçilerek çizginin uzunluğu alınır. Sonra bir çizgi daha seçilir 2. seçilen çizgiye 1. çizgi uzunluğu mesafesinde nokta konulur.
Bu videoda makro kodları geliştirildi. Komutun 1. aşamasında çizgi ile beraber yay, daire ve polyline çizgilerinin uzunlukları uzunluk değeri olarak alınıyor. Uzunluk değeri alınan çizgi uzunluğu kadar mesafede çizgi, yay, daire, elips, spline ve polyline nensesine nokta konuluyor.

CizgiyeNokta makrosunu komut satırından çalıştırmak için Autocad'de CN komutu oluşturulur. CN komutunu oluşturmak için CN_komutu prosedürünün bir kere çalıştırılması yeterlidir.

19 Mart 2022 Cumartesi

AutoCAD VBA #27. Çizgiye Nokta-3

Youtube koni açınımları videolarında kullandığım çizgiye nokta VBA makrosunun geliştirmeye devam ediyorum.

Makro çalıştırıldığında bir çizgi seçilerek çizginin uzunluğu alınır. Sonra bir çizgi daha seçilir 2. seçilen çizgiye 1. çizgi uzunluğu mesafesinde nokta konulur.

Bu videoda makro kodları geliştirildi. Komutun 1. aşamasında çizgi ile beraber yay, daire ve polyline çizgilerinin uzunlukları uzunluk değeri olarak alınıyor.

CizgiyeNokta makrosunu komut satırından çalıştırmak için Autocad'de CN komutu oluşturulur. CN komutunu oluşturmak için CN_komutu prosedürünün bir kere çalıştırılması yeterlidir.

Videoda kullanılan kodlar:

13 Mart 2022 Pazar

AutoCAD VBA #26. Çizgiye Nokta-2

Bu videoda Youtube kanalımda koni açınımları videolarında kullandığım çizgiye nokta VBA makrosunun geliştirilmesi açıklandı.
Makro çalıştırıldığında bir çizgi seçilerek çizginin uzunluğu alınır. Sonra bir çizgi daha seçilir 2. seçilen çizgiye 1. çizgi uzunluğu mesafesinde nokta konulur.

Bu videoda makroya Uzunluk ve Çıkış seçenekleri eklendi.
Uzunluk seçeneği ile nokta konulacak mesafe değeri klavyeden girilebiliyor.
CizgiyeNokta makrosunu komut satırından çalıştırmak için Autocad'de CN komutu oluşturulur. CN komutunu oluşturmak için CN_komutu prosedürünün bir kere çalıştırılması yeterlidir.

Videoda kullanılan kodlar:

3 Mart 2022 Perşembe

AutoCAD VBA #25. Çizgiye Nokta-1


Youtube kanlımda koni açınımlarında kullandığım çizgiye nokta VBA makrosu.

Makro çalıştırıldığında bir çizgi seçilerek çizginin uzunluğu alınır. Sonra bir çizgi daha seçilir 2. seçilen çizgiye 1. çizgi uzunluğu mesafesinde nokta konulur. MEASURE komutunun işlevine biraz benzer.

CizgiyeNokta makrosunu komut satırından çalıştırmak için Autocad'de CN komutu oluşturulur. CN komutunu oluşturmak için CN_komutu prosedürünün bir kere çalıştırılması yeterlidir.

Makro kodları:

7 Mart 2021 Pazar

AutoCAD ile VBA Makro #6-5



Bu videoda AutoCAD VBA makro kodları ile SLOT çizme açıklandı.
VBA ile slot çizimi 5 bölüm halinde yayınlandı. Bu video 5. bölümdür.
Bu bölümde SLOT çizen kodlar yazıldı ve açıklandı.

Videoda kullanılan AutoCAD VBA kodları:
Sub SLOT()
' Mesut Akcan
' 7/3/2021
' mesutakcan.blogspot.com
Dim ut As AcadUtility
Dim ms As AcadModelSpace
Dim cizgi As AcadLine
Dim vl(7) As Double
Dim pl As AcadLWPolyline

Set ut = ThisDrawing.Utility
Set ms = ThisDrawing.ModelSpace
pi = 4 * Atn(1) '3.14159265358979
aci90 = pi / 2 ' 1.5707963267949 'radyan
aci270 = pi * 1.5 '4.71238898038469 'radyan
With ut
    ' n1 noktasını al
    n1 = .GetPoint(, "1. merkez nokta:")
    ' n2 noktasını al
    n2 = .GetPoint(n1, "2. merkez nokta:")
    ' n1-n2 arasına geçici çizgi çiz
    Set cizgi = ms.AddLine(n1, n2)
    ' cizgiyi vurgulu yap
    cizgi.Highlight True
    ' r yarıçap değerini al
    r = .GetDistance(n2, "Yarıçap:")
    ' a açısını hesapla
    a = .AngleFromXAxis(n1, n2) 'radyan
    ' geçici çizgiyi sil
    cizgi.Delete

    ' p1 noktasını hesapla
    p1 = .PolarPoint(n1, a + aci90, r)
    ' p2 noktasını hesapla
    p2 = .PolarPoint(n2, a + aci90, r)
    ' p3 noktasını hesapla
    p3 = .PolarPoint(n2, a + aci270, r)
    ' p4 noktasını hesapla
    p4 = .PolarPoint(n1, a + aci270, r)

    ' vertex listesini oluştur
    vl(0) = p1(0): vl(1) = p1(1) 'vertex 1 X,Y
    vl(2) = p2(0): vl(3) = p2(1) 'vertex 2 X,Y
    vl(4) = p3(0): vl(5) = p3(1) 'vertex 3 X,Y
    vl(6) = p4(0): vl(7) = p4(1) 'vertex 4 X,Y
    ' vertex listesi ile polyline çiz
    Set pl = ms.AddLightWeightPolyline(vl)
    ' close özelliği ile kapalı şekil oluştur
    pl.Closed = True
    ' karşılıklı kenar çizgilerini yay yap.
    pl.SetBulge 1, -1
    pl.SetBulge 3, -1
End With
End Sub

5 Mart 2021 Cuma

AutoCAD ile VBA Makro #6-4



VBA ile slot çizimi 5 bölüm halinde yayınlandı. Bu video 4. bölümdür.
Bu bölümde polyline ile basit bir çizim kodlaması yapıldı.

Videoda kullanılan AutoCAD VBA kodları:
Sub polyLine()
    Dim pl As AcadLWPolyline
    Dim vl(7) As Double 'vertex listesi için
    vl(0) = 290: vl(1) = 40 'vertex 1 X,Y
    vl(2) = 275: vl(3) = 125 'vertex 2 X,Y
    vl(4) = 335: vl(5) = 65 'vertex 3 X,Y
    vl(6) = 300: vl(7) = 75 'vertex 4 X,Y
    
    Set pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(vl)
    pl.Closed = True
    pl.Update
End Sub

30 Mart 2020 Pazartesi

AutoCAD ile VBA Makro Kullanımı #6-1


Bu videoada AutoCAD VBA makro kodları ile slot çizme açıklandı.
Video 3 bölüm halinde yayınlanacak.

Bu bölümde slot çiziminde kullanılan VBA fonksiyonlarından
GetPoint
GetDistance
AngleFromXAxis
açıklandı.

Diğer fonksiyonlar sonraki videolarda açıklanacak.
Videolarda kullanılan VBA Kodları:

12 Mart 2020 Perşembe

AutoCAD ile VBA makro kullanımı #5-5

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri:


7) Userformda komut butonu ile makro çalıştırma

Excel VBA editöründe olduğu gibi AutoCAD VBA editöründe de UserForm oluşturma imkanı vardır. UserForm; kullanıcı ile program arasında iletişimi sağlayan Windows standart uygulama penceresidir.

  • VBA Editöründe menüden Insert / UserForm tıklayın ya da Proje Ağacında; Sağ tıkla / Insert / UserForm

AutoCAD ile VBA makro kullanımı #5-4

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri:


6) Lisp ile AutoCAD komutu oluşturarak makro çalıştırma

AutoCAD'de programlama için kullanılan dillerden biri de LISP'dir. Lisp hakkında başlangıç seviyesinde bir yazımı okumak için: AutoLisp ile programlama: Orijine zumla

Autocad'de LISP kodlamak için AutoCAD ile birlikte kurulan Visual Lisp for AutoCAD kullanılabilir ancak "Lisp ile AutoCAD komutu oluşturarak makro çalıştırma" için bunu kullanmayacağım. LISP kodları yazmak için Visual LISP şart değildir. Herhangi bir metin editörü kullanılabilir.

VBA makro kodlarının çalıştırılması için VBA içinde AutoCAD komut tanımlaması yoktur. LISP'de ise LISP komutlarını çalıştıracak AutoCAD komut tanımlaması yapılabiliyor.
LISP'in bu özelliğinden faydalanarak oluşturduğumuz VBA makrolara AutoCAD komutu tanımlayacağız.
İşlem çok basittir. Bu iş için LISP dillinde kodlamayı bilmek şart değildir.
Eksen Çiz VBA makromuz için LISP ile bir AutoCAD komutu oluşturacağız.

Bunun için;
Bir metin editörü(Örneğin Windows Not Defteri = notepad.exe, ya da Notepad++) açıp aşağıdaki kodları ekleyin.
(defun c:EC()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!EksenCiz")
(princ)
)
Dosyayı EksenCiz.lsp olarak kaydedin. Windows'da dosya uzantılarınız gizli ise ayarlardan görünür yapın.


LISP kodlarındaki c:EC() Autocad komut satırından girilecek komut adıdır(EC), alt satır ise bu komut girildiğinde buna karşılık gelen komutu ve parametresini belirtir.

EC yerine başka bir ad verilebilir. EKSENCIZ gibi.
Lisp dosyayı AutoCAD'e yüklemek için bir kaç yol var ancak burada en basit olanı göstereceğim.
Masaüstüne kaydettiğimiz EksenCiz.lsp dosyasını sürükleyip AutoCAD çizim alanına bırakın.
VBA makroları yüklerken olduğu gibi bir güvenlik uyarısı gelecek. Burda Load Once tıklayın.
Bir dahakinde sormasını istemiyorsanız Always Load tıklayın.

Artık komut satırından EC girilerek Eksen Çiz VBA makrosu çalıştırılabilir.
İlk çalıştırmada VBA makro yüklü değilse dosyayı belleğe yükleyeceği için üstteki gibi güvenlik uyarısı çıkabilir. Load Once tıklayın.
Eğer birden fazla VBA makro kodu varsa bunlara ayrı ayrı lsp dosya oluşturmak şart değildir.
Bir lsp dosyada tüm VBA makro kodları için ayrı ayrı AutoCAD komutu tanımlanabilir.

Aşağıdaki gibi:
(defun c:EC()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!EksenCiz")
(princ)
)

(defun c:DIKDORTGEN()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!Dikdortgen")
(princ)
)

(defun c:SLOT()
(command "_.-VBARUN" "C:/Users/Mesut/Desktop/Makrolarim.dvb!Slot")
(princ)
)

28 Şubat 2020 Cuma

AutoCAD ile VBA makro kullanımı #5-3

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri

4) AutoCAD komut butonu ile makro çalıştırma



Komut satırından -VBARUN C:\Users\Mesut\Desktop\Makrolarim.dvb!EksenCiz yazmak yerine bu kodları giren bir AutoCAD butonu oluşturarak makronun çalıştırılması sağlanabilir. Bu işlem, makroyu çalıştırmada kolaylık sağlayacaktır.

Bunun için;
Komut satırından CUI komutu(Customize User Interface = Özelleştirme Kullanıcı Arabirimi) verilir ya da menüden Manage / Customization / User interface tıklanır.

Açılan pencerede; Customize tab'ı seçili iken altındaki açılır listeden Main Customization File(acad.cuix) seçilir. Bu AutoCAD'in kullandığı ana özelleştirme dosyasıdır.

24 Şubat 2020 Pazartesi

AutoCAD ile VBA makro kullanımı #5-2

Autocad VBA Makro Kodlarını Çalıştırma Yöntemleri

2) Macros pencesinden makro çalıştırma


Macros penceresini açmak için yöntemler;
  1. Klavyeden ALT+F8'e basarak,
  2. Menüden Manage / Applications / Run VBA Macro tıklanarak,
  3. Komut satırından VBARUN girilerek,
  4. VBA Manager(VBAMAN komutu ile açılır) penceresindeki Macros butonu tıklanarak.

Macros penceresinde makro listesinden çalıştırılacak makro adı seçilir. Seçili makro adı üst alanda belirir.