Makale Object Model

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,318
En iyi yanıt
11
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Versiyon
Office 365 TR+EN
Üç ana VBE nesnesi vardır.


VBProject

Bir çalışma kitabı veya belge ile ilişkili VBA Modülleri ve başvuruları varsa bu, kümenin tamamıdır.

VBComponent

Bu, bir VBProject içindeki (yani bir modül veya bir kullanıcı formu) bireysel bileşenidir.

CodeModule

Bu "Module1" veya "Module2" gerçek modülüdür.

VBE Object (VBE Nesnesi)
Bu, Visual Basic Düzenleyicisi'nin en üst düzey nesnesidir.
VBE, düzenleyiciyi oluşturan tüm pencereleri ve projeleri içeren Visual Basic Düzenleyicisi'ne başvurur.
PHP:
Dim VBEditor As VBIDE.VBE
Set VBEditor = Application.VBE

VBProject
Bir VBProject, Proje Gezgini'ndeki en üst düzey öğelerden birine karşılık gelir.
Bir VBProject, tüm kod modüllerini ve tek bir çalışma kitabının bileşenlerini içerir.
Bir çalışma kitabında tam olarak bir tane VBProject var. VBProject, 1 veya daha fazla VBComponent nesnesinden oluşur.
VBProjects koleksiyonunu da yineleyebilirsiniz.
PHP:
Dim oVBProject As VBIDE.VBProject   
Set oVBProject = Application.VBE.VBProjects(2)   
Set oVBProject = Workbooks(1).VBProject

VB Editörünü programlarken, Proje Gezgini'nde hangi projenin şu anda vurgulandığını bilmek çok yararlıdır.
Bu, ActiveVBProject özelliği tarafından verilir.
PHP:
Dim objVBP As VBIDE.VBProject
Set objVBP = Application.VBE.ActiveVBProject
Bu projenin kullanıcının VB Editör'de düzenlediği ve aktif çalışma kitabı ya da belge ile ilgili olmadığı projedir.

VBComponent (VB Bileşenler)
VBComponent, VBProject içinde bir nesnedir.
Bir VBComponent bir kod modülü, bir UserForm, bir Class Modüle, Sayfa modüllerinden biri veya ThisWorkbook modülüdür.
Bir VBComponent, Type özelliği tarafından tanımlanan aşağıdaki türlerden biridir.
Tipleri tanımlamak için aşağıdaki sabitler kullanılır. Her sabitin sayısal değeri parantez içinde gösterilir.


vbext_ct_ClassModule (2)

Kendi nesnelerinizi oluşturmak için bir sınıf modülü. Sınıflar ve nesneler hakkında ayrıntılar için Sınıf Modülleri'ne bakın.

vbext_ct_Document (100)

Sayfa modüllerinden biri veya ThisWorkbook modülü.

vbext_ct_MSForm (3)

Bir UserForm. VBA Düzenleyicisi'nde bir UserForm görsel bileşenine tasarımcı denir.

vbext_ct_StdModule (1)

Düzenli bir kod modülü. Bu sayfadaki prosedürlerin çoğu bu tür bileşenlerle çalışacaktır.
PHP:
Dim objVBComponent As VBIDE.VBComponent
Set objVBComponent = ActiveWorkbook.VBProject.VBComponents("Module1")
Set objVBComponent = objVBProject.VBComponents("Module1")
Çalışma formları ve çalışma kitabının arkasındaki Kullanıcı formları, standart modüller, sınıf modülleri ve kod modülleri tüm VBComponents nesneleridir. Her VBComponent nesnesi, Proje Gezgini ağacındaki alt düzey öğelerden birine karşılık gelir.
Belirli bir VBComponent, bir VBProject'in VBComponents koleksiyonuyla yerleştirilebilir.
Bu nedenle, Kitap1.xls'de UserForm1 formunu temsil eden VBComponent'i bulmak için kullanmalısınız:
PHP:
Dim obVBC As VBIDE.VBComponent
Set obVBC = Workbooks(").VBProject.VBComponents("UserForm1")
Çalışma kitabının, çalışma sayfalarının ve grafiklerin arkasındaki kodu içeren VBComponent'in adı, ilgili Excel nesnesinin CodeName özelliği tarafından verilir. Bu nedenle, kullanabileceğiniz çalışma kitabının arkasındaki kod için VBComponent öğesini bulmak için:
PHP:
Set obVBC = Workbooks(1).VBProject.VBComponents(Workbooks(1).CodeName)
ve kullanabileceğiniz belirli bir çalışma sayfası için:
PHP:
Set obVBC = Workbooks(1).VBProject.VBComponents(Workbooks(1).Worksheets(2).CodeName)
Çalışma kitabının VBComponent adının genellikle Project Explorer'daki "ThisWorkbook" olduğunu unutmayın. Kullanıcı bu adama güvenmiyor
Kullanıcı, Office Kullanıcı Ara birimi için farklı bir dil seçtiyse, farklı olacaktır.
VBE için Eklentiler geliştirirken, genellikle kullanıcının şu anda düzenlediği VBComponent'i bilmeniz gerekir.
Bu, VBE'nin SelectedVBComponent özelliği tarafından verilir .
PHP:
Dim obVBC As VBIDE.VBComponent
Set obVBC = Application.VBE.SelectedVBComponent
Her VBComponent, Proje Gezgini'nde VBComponent seçildiğinde VBE'nin Özellikler penceresinde gösterilen
listeye karşılık gelen bir Properties koleksiyonuna sahiptir. Bunlardan biri Name özelliği.
PHP:
Sub ShowNames
   With Application.VBE.SelectedVBComponent
      Debug.Print .Name & ": " & .Properties("Name")
   End With
End Sub
Çoğu VBComponent nesnesi için .Name ve .Properties ("Name") tarafından döndürülen metin aynıdır.
Ancak, çalışma kitaplarının, çalışma sayfalarının ve grafiklerin arkasındaki kodu içeren VBComponent nesneleri için .Properties ("Name"), Excel nesnesinin adını (çalışma kitabı, çalışma sayfası veya grafik) verir.
Kullanıcının, VBE'de veya ActiveVBProject'e karşılık gelen Excel çalışma kitabında çalıştığı öğeye karşılık gelen Excel nesnesini bulmak için bunu kullanabilirsiniz.

CodeModule
Bir VBComponent için tüm VBA kodu bir CodeModule nesnesinde bulunur.
Bir CodeModule, bir VBComponent'in VBA kaynak kodudur. VBComponent ile ilişkili kodlara erişmek için CodeModule nesnesini kullanırsınız.
Bir VBComponent tam olarak bir CodeModule'a sahiptir.
Her VBComponent için sadece bir CodeModule vardır.
PHP:
Dim objCodeModule As VBIDE.CodeModule
Set objCodeModule = ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
Set objCodeModule = objVBComponent.CodeModule

CodePane
Bu, kullanıcının bir kod modülü hakkındaki görüşüne erişim sağlar.
CodePane, CodeModule'ın açık düzenleme penceresidir.
Bu, ekranda görüntülenen bir kod modülünün bölümü veya kullanıcının seçtiği metin gibi şeyleri tanımlamanıza olanak tanır.
ActiveCodePane özelliğini kullanarak hangi CodePane ios'un düzenlendiğini belirleyebilirsiniz.
PHP:
Dim obCP AS VBIDE.CodePane
Set obCP = Application.VBE.ActiveCodePane

Alt yordamlar, Fonksiyonlar ve Özellikler
Bu sayfadaki kod ve açıklamalarda, Prosedür terimi bir Alt, İşlev, Mülkiyet Getir, Mülkiyet İzin veya Mülk Kümesi prosedürü anlamına gelir.
Extensibility kütüphanesi, aşağıdaki sabitlerle tanımlanan dört prosedür tipini tanımlar.
Her sabitin sayısal değeri parantez içinde gösterilir.


vbext_pk_Get (3)

Bir özellik alma yordamı

vbext_pk_Let (1)

Bir Özellik İzin prosedürü

vbext_pk_Set (2)

Özellik Kümesi prosedürü

vbext_pk_Proc (0)

Bir Alt veya İşlev prosedürü

Designer
Kullanıcı formlarının bir grafik arayüzü ve bir kod modülü vardır. Designer nesnesi grafiksel kısma erişim sağlar.
 
Son düzenleme:
Üst Alt