VBA kodlarıyla ofis programlarına bağlantı kurulabilir ve programla ilgili birçok işlem yaptırılabilir.
AutoCAD VBA'dan Excel'e bağlantı kurulabildiği gibi tersi de mümkündür
Hatta birçok uyumlu Windows programı birbiri ile bağlanıp kodlarla işlemler yapabilir.
Bu videoda AutoCAD VBA ile Excel'e bağlanmayı ve veri aktarmayı göstermeye devam ediyorum.
- Excele sayfa ekle
- Excel sayfası silme
- AutoCAD çizim nesne adlarını Excele yaz
- AutoCAD çizim alanındaki çizgilerin uzunluklarını ve toplamını Excele yaz
- Excel dosyasını aç
Videoda kullanılan VBA kodları:
'Mesut Akcan
'https://mesutakcan.blogspot.com
'https://youtube.com/mesutakcan
'makcan@gmail.com
Sub excelDosyaAc2()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'Excel uygulamasını temsil eden nesne
Dim wb As Excel.Workbook 'Excel çalışma kitabını temsil eden nesne
Set xla = Excel.Application
xla.Visible = True 'uygulamayı ekranda göster
Set wb = xla.Workbooks.Open("c:\test\test2.xlsx") 'dosyayı excel ile aç
End Sub
Sub excelDosyaAc1()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Visible = True 'ekranda excel nesnesini göster
Dim dosya As Excel.Workbook 'excel çalışma kitabı nesnesi
Set dosya = xla.Workbooks.Open("c:\test\test1.xlsx") 'dosyayı excel ile aç
End Sub
Sub exceleYaz6()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Workbooks.Add 'Yeni dosya oluştur.
xla.Visible = True 'ekranda excel nesnesini göster
Dim sayfa As Excel.Worksheet 'excel sayfası nesnesi
Set sayfa = xla.ActiveSheet
sayfa.Name = "Liste"
Dim ent As AcadEntity 'AutoCad Varlık
For Each ent In ThisDrawing.ModelSpace 'Çizim alanındaki tüm varlıklar
If ent.ObjectName = "AcDbLine" Then
satir = satir + 1
uz = ent.Length
sayfa.Cells(satir, 2) = uz
toplamUzunluk = toplamUzunluk + uz
End If
Next
sayfa.Cells(satir + 1, 1).Value = "TOPLAM:"
sayfa.Cells(satir + 1, 2).Value = toplamUzunluk
sayfa.Cells(satir + 1, 2).Font.color = vbRed
sayfa.SaveAs "c:\TEST\test2.xlsx" 'Dosyaya kaydet
End Sub
Sub exceleYaz5()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Workbooks.Add 'Yeni dosya oluştur.
xla.Visible = True 'ekranda excel nesnesini göster
Dim sayfa As Excel.Worksheet 'excel sayfası nesnesi
'Son sayfadan sonra ekle
Set sayfa = xla.Worksheets.Add(After:=xla.Worksheets(xla.Worksheets.Count))
sayfa.Name = "TEST"
Dim ent As AcadEntity 'AutoCad Varlık
For Each ent In ThisDrawing.ModelSpace 'Çizim alanındaki tüm varlıklar
satir = satir + 1 'satır numarasını 1 arttır
sayfa.Cells(satir, 1).Value = ent.ObjectName 'hücreye nesne adını yaz
Next
sayfa.SaveAs "c:\TEST\test1.xlsx" 'Dosyaya kaydet
End Sub
Sub exceleYaz4()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Workbooks.Add 'Yeni dosya oluştur.
xla.Visible = True 'ekranda excel nesnesini göster
Dim sayfa As Excel.Worksheet 'excel sayfası nesnesi
'Set sayfa = xla.Worksheets.Add(After:=xla.Worksheets(xla.Worksheets.Count)) 'Son sayfadan sonra yeni sayfa ekle
'2. sayfadan sonra ekle
Set sayfa = xla.Worksheets.Add(After:=xla.Worksheets(2))
sayfa.Name = "TEST"
'TEST sayfasından sonra ekle
Set sayfa = xla.Worksheets.Add(After:=xla.Worksheets("TEST"))
sayfa.Name = "DENEME"
'TEST sayfasından önce ekle
Set sayfa = xla.Worksheets.Add(Before:=xla.Worksheets("TEST"))
sayfa.Name = "HESAP"
sayfa.Delete
Set sayfa = xla.Worksheets("TEST")
sayfa.Delete 'sayfa sil
xla.Worksheets("DENEME").Delete 'sayfa sil
End Sub
Sub exceleYaz3()
'2. yöntem: Geç bağlanma. Late Binding
Dim xla As Object 'nesne için değişken tanımla
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Visible = True 'ekranda excel nesnesini göster
Dim wb As Object 'nesne için değişken tanımla
Set wb = xla.Workbooks.Add 'Yeni dosya oluştur.
Dim sayfa As Object 'nesne için değişken tanımla
Set sayfa = wb.Worksheets.Add 'yeni dosya oluştur
sayfa.Name = "TEST" 'sayfa adını değiştir.
sayfa.Cells(4, 3) = "Merhaba" 'satır 4, sütun 3'e Merhaba yaz
End Sub
Sub exceleYaz2()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Workbooks.Add 'Yeni dosya oluştur.
xla.Visible = True 'ekranda excel nesnesini göster
'xla.Worksheets.Add 'yeni excel sayfası ekle
Dim sayfa As Excel.Worksheet 'excel sayfası nesnesi
Set sayfa = xla.Worksheets.Add 'yeni excel sayfası ekle
sayfa.Name = "TEST" 'sayfa adını değiştir
Set sayfa = xla.Worksheets(2) 'excel 2. sayfa
sayfa.Activate 'sayfayı aktif et
With sayfa.Range("B3")
.Value = "Merhaba" 'Satır 3, Sütun 2'ye Merhaba yaz
.Interior.color = vbRed 'zemin rengi kırmızı
.Font.color = vbWhite 'yazı rengi beyaz
.Font.Bold = True 'kalın yazı
'.Select 'B3 hücresini seç
End With
End Sub
Sub exceleYaz1()
'1. yöntem: Erken bağlanma. Early Binding
'Tools / References / Microsoft Excel xx.x Object Library ekle
Dim xla As Excel.Application 'excel uygulamasını örnek alan nesne oluştur
Set xla = CreateObject("Excel.Application") 'excel nesnesi oluşturup değişkene aktar
xla.Workbooks.Add 'Yeni dosya oluştur.
xla.Visible = True 'ekranda excel nesnesini göster
With xla.Application.Range("B3")
.Value = "Merhaba" 'Satır 3, Sütun 2'ye Merhaba yaz
.Interior.color = vbRed 'zemin rengi kırmızı
.Font.color = vbWhite 'yazı rengi beyaz
.Font.Bold = True 'kalın yazı
.Select 'B3 hücresini seç
End With
xla.Quit 'Exceli kapat
End Sub
Hiç yorum yok:
Yorum Gönder