Mavzu: Obyektlar modellari va avtomatlashtirish


Download 376.93 Kb.
Pdf ko'rish
Sana28.03.2023
Hajmi376.93 Kb.
#1304918
Bog'liq
5.Obyektlar modellari va avtomatlashtirish



Mavzu: Obyektlar modellari va avtomatlashtirish 
Obyekt bu ma’lumotlarni yagona sinf struktura orqali boshqarishdan hosil 
bo’lgan nusxasi. 
Sinf ma'lumotlar turi kontseptsiyasini umumlashtirish bo'lib, sinf 
ob'ektlarining xususiyatlari va xatti-harakatlarini belgilaydi. Obyektlar unikal 
bo’lib, sinf barch obyektlarni aniq bir tur bo’yicha ifodalaydi. Har bir obyektni 
asosini sinf tashkil qiladi. Obyekt va sinf o’rtasidagi aloqa huddi o’rgaruvchi va 
uning tipining aloqasiga o’xshash. 
Sinf xususiyatlari va usullariga ega. 
Metod – xususiyat amallarini bajaradi. 
Xususiyat va metodlar bilan birqatorda, sinf bilan bog’liq yana bir tushuncha 
mavjud bu hosidalar. 
Har bir sinf aniq hodisalar jamlasiga ega, bu sinfning obyektlarni ishlash 
jarayoni bo’lib, foydalanuvchi harakatlari, yoki tiziming ma’lum bir natija berishi 
xisoblanadi. 
Obyekt bilan bog’liq hosida sodir bo’lganda, obyektni qurish paytida maxsus 
yaratilgan hosidalar yaratuvchisi orqali tizim obyektga xabar yuboradi, uni metod 
bilan qayta ishlash mumkin.
Obyekt modeli 
VBA har bir Microsoft Office dasturi va Microsoft Office 2016 ning barcha 
tarkibiy qismlari uchun umumiy bo'lgan ob'ekt modellari uchun o'ziga xos ob'ekt 
modellarini belgilaydi. Har bir dastur o’zining iyerarxik modeliga ega: 
1-rasm.Word va Excel dasturlarining iyerarxiyasi 
Application
(Excel)
WorBooks
(WorkBook)
Range
...
Application
(Word)
Documents
(Document)
Sections
(Section)
Paragraphs
Sentences
(Range)
Words
(Range)
Charaters
(Range)
...


Sinf modullari
Yuqorida aytilgan sinflardan tashqaridan VBA foydalanuvchiga o’zing 
singlarni yaratish imkonini beradi. 
Sinf sintaksisi o’zida alohida modulning maxsus ko’rinishi ifodalaydi. Modul sinfi: 
menyu orqali Insert → Class Module 
Bu modul standart modul ko’rinishi kabi 2 bo’limdan tashkil topgan, e’lon 
qilish va metodlar. Birinchi qismida sinfning xususiyatlarini, ikkinchise esa 
metodlarni ifodalaydi. 
Quyida sinf xosil qilishni ko’ramiz: 
1.Customer nomi sinfni yaratamiz. 
Public id As Integer 
Public function showsales() 
Select case id 
Case 5 
Showsales = “besh” 
Case else 
Showsales = “besh emas” 
End select 
End function 
2.Customer sinfi orqali obyekt yaratamiz va unga xususiyar va metodlarni 
o’rnatamiz. 
Dim cstMyCust as New Customer 
cstMyCust.ID = 5 
MsgBox cstMyCust.ShowSales 
3.Bir nechta obyektlar hosil qilamiz 
Dim cust1 as New Customer 
Dim cust2 as New Customer 
Ilova obyektlarining iyerarxiyasi 
Obyektga bog’lanish. 
Iyerarxik tuzilishdagi obyektning to’liq yo’lini ko’rsatish orqali: 
Application.Workbooks(1).Worksheets(1).Range("A1").Value = 5
Obyektga tog’ridan to’g’ri bog’lanish:
Range("A1").Value = 5
ActiveSheet.PrintOut 
Kolleksiyalardan foydalanish 
Obyektlar guruhlari birlashib to’plamlarni hosil qiladi. To’plam orqali 
obyektni e’lon qilish: 
1.To’plamning nomi orqali 
Application.Workbooks![Пример Книга1.xls].PrintPreview
Application.Workbooks("Пример Книга1.xls").PrintPreview


2.To’plamning indeksi orqali: 
Application.Workbooks(1).PrintOut 
Collection VBAdinamik sinfning metod va xususiyatlari 
Metod 
Vazifasi 
Add(item,[key], [before], [after]) 
To’plamga element qo’shish 
Remove(key) yoki Remove(indeks) 
To’plamdan elementlarni o’chirish 
Item(key) yoki Item(indeks) 
Kalit so’z yoki indeks bo’yicha 
qiymatni qaytaradi 
Item – element qiymati 
Key – unikal kalit 
Before, after – kiritilgan elementdan oldingi yoki keyingisini indeks yoki kalit 
elementi 
Metod Item – odatdatiy foydalanish 
Collection(1) – Collection.Item(1)ga teng 
Count – to’plamdagi elementlarni sonini qaytaradi. 
To’plam elementlari sikl orqali.Masalan: 
Sub ListDocuments()
Dim doc As Document
For Each doc In Documents
Debug.Print doc.Name
Next
End Sub 
Obyekt o’zgaruvchisidan foydalanish 
Obyekt o’zgaruvchisi obyekt uchun manzil sifatida ishlatiladi. Obyekt 
o’zgaruvchisini o’zlashitirishda oldin Set yoziladi undan keyin o’zgaruvchini nomi 
yoziladi. Masalan: 
Dim rngTest As Excel.Range
Set rngTest = Application. Workbooks(1).Worksheets(1).Range("A1")
rngTest.Value = 5 
Obyekt o’zgaruvchisi: 
Dim xlsSht As Excel.Worksheet - oldin obyekt bilan bog’lanish 
Dim genObj As Object - keyin obyekt bilan bog’lanish 
Obyekt o’zgaruvchini belgilash. Masalan: 
Dim xlsWbk As Excel.Workbook
Set xlsWbk = Workbooks(1)
xlsWbk.PrintOut
Dim wrdDoc As Document
Set wrdDoc = Documents.Add
wrdDoc.Content.InsertAfter "Hello there."
Nothing o’zgaruvchi obyektga bog’langan yoki bog’lanmaganligini aniqlaydi. 
Masalan: Dim xlsSht As Worksheet


...
If xlsSht Is Nothing Then
MsgBox "Переменная не указывает на объект"
Else
MsgBox "Переменная содержит ссылку на объект"
End If
Obyekt o’zgaruvchisidan obyektni uzish yoki o’chirish : Set xlsSht = Nothing 
Obyektlar bilan ishlash 
Barcha obyektlarni 3 guruhga bo’lish mumkin.
1.Foydalanuvchi tomonidan New spetsifikatori yordamida biror sinf orqali hosil 
qilgan. 
2.MS Office paketining dasturlari obyektlari va doimiy foydalaniladigan obyetklar.
Bunday obyektlarni hosil qilish uchun CreateObject spetsifikatoridan foydalaniladi. 
3.Active-X va ComAddIns – Office dasturlarining boshqa turdagilarifagi obyektlar. 
Obyektlar bilan biz odatda ularning metodlari va xususiyatlari bilan ishlaymiz. 
Sintaksis tuzilishi: Obyekt.xususiyat, Obyekt.Metod 
Masalan: MsgBox Application.Workbooks.Count & " open workbooks." 
Xususiyatlari orqali: 
Доступ к свойствам
Dim strDocAuthor As String
Dim wrdDoc As Document
Set wrdDoc = Documents("MyDoc")
application.UserName="Mary" '- xususiyatni belgilash 
strDocAuthor = application.UserName ' - xususiyatni o’qish 
Metodlardan foydalanish 
Workbooks(1).PrintOut From:=2, To:=3, Copies:=1 
Metod orqali qiymat qaytarish 
Dim wrdDoc As Document
Set wrdDoc = Application.Documents.Add
wrdDoc.Content.InsertAfter "Hello"
Set d = Documents.Add(Template:="expense.dot")– qiymat qaytaradi 
Documents.Add Template:="expense.dot" – qiymat qaytarmaydi 
With ... End with
With operatori obyektni faqat bir maratoba belgilab oladi. With ... End With 
bilan dastur tezroq ishlaydi. 
Masalan: 
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Underline = True
Operator yordamida: 
With Selection.Font
.Bold = True


.Italic = True
.Underline = True
End With 
Ofis dasturlarni avtomatlashtirish. 
Ob'ektlarni bir ilovadan ikkinchisiga ishlatish uchun siz avtomatizatsiyadan 
foydalanishingiz mumkin (ilgari OLE-Avtomatizatsiya deb nomlangan). 
MS Word dasturi uchun yaratilgan prodsedurani, MS Excel, MS PowerPoint 
va MS Access dasturlarida foydalanishingiz mumkin. Avtomatlashtirish 2 xil 
ko’rnishida bo’ladi klient va server. Ofis dasturlari 2 la texnologiyani ham qo’llab 
quvatlaydi. 
Obyekt kutubxonasi ma'lumotnomalari 
Avtomatlashtirishda dastlab obyektning kutubxonasi bog’lanish kerak va 
obyekt orqali uning iyerarxiyasiga bog’lanish mumkin. Ob'ektlar kutubxonasi 
ilovada mavjud bo'lgan ob'ektlarning turlarini va ushbu dasturdagi ob'ektlarning 
usullari va xususiyatlarini tavsiflaydi. 
Obyektning kutubxonasiga ulanish uchun Сервис (Tools) Ссылки 
(References…) 
2-rasm.Obyekt kutubxonasni ulash oynasi. 
Obyektlarni ko’rish oynasi obyekt kutubxonasining ma’lumotlarni ko’rish mumkin: 
menyu View yoki klaviatura orqali F2 
3-rasm.Obyekt ko’rish oynasi. 


Odatda quyidagi kutubxonalar bog’langan bo’ladi: 
Word(Excel, ...) – kutubxona dastur xujjatning asosini tashkil qiladi. Asosiy 
obyekt Appalication va shunga bog’langan barcha sinf obyektlari. 
Office – ofis paketi dasturlarining kutubxonasi 
Stdole – OLE obyeki bilan ishlash uchun kutubxona 
VBA – VBA tili bilan ishlash uchun kutubxona 
Project – xujjat bilan bog’liq kutubxonalar 
Dasturlardagi havolalar 
CreateObject funksiyasi yangi obyekt hosil qiladi va shu obyektni havolasini 
qaytaradi. Agar obyekt oldin ishga tushurilgan bo’lsa, ishlayotgan obyektni 
qaytaradi. 
Dim xlsApp As Excel.Application
Dim wrdApp As Word.Application
Dim pptApp As PowerPoint.Application
Set xlsApp = CreateObject ("Excel.Application.9")
Set wrdApp = CreateObject ("Word.Application.9")
Set pptApp = CreateObject ("PowerPoint.Application.9") 
GetObject([pathname][,class]) ActiveX obyektlari havolani, fayl saqlangan joyni. 
Pathname – faylning joylashgan joyining yo’li, agar faylni yo’li 
ko’rsatilmagan bo’lsa, class argumentini kiritish shart. 
Class(dasturNomi,obyektTuri) – sinf obyektni ko’rsatuvchi qator. Agar 
pathname yozilmasi, GetObject aktiv obyektni ko’rsatadi. 
Sub TestForApp()
On Error GoTo StartExcel
Set xlsApp = GetObject(, "Excel.Application")
Exit Sub
StartExcel:
If Err.Number = 429 Then
MsgBox "Будет запущен excel."
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
MsgBox "Запустили excel."
Else
MsgBox Err.Description
End If
End Sub
MS word dasturini boshqarishga misol: 
Sub AutomateWord()
' kodlarni testlash uchun - biror dasturda yozilgani kodni olib o’tamiz 
' Microsoft Excel, PowerPoint или Microsoft Access
' Word object library obyektiga havola o’rnatamiz 
'Eslatma: agarsi Windows NT da ishlayotgan bo’lsangiz 


'operator nomlarini o’zgartirishingiz kerak
'Dim wrdApp As Object
'Dim wrdDoc As Object
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
wrdDoc.Content.InsertAfter "Hello World!"
wrdDoc.SaveAs ("C:\MyNewWordDoc.doc")
wrdDoc.Close
wrdApp.Quit
End Sub 
Excel dasturni boshqarish: 
Sub AutomateExcel()
' kodlarni testlash uchun - biror dasturda yozilgani kodni olib o’tamiz 
' Microsoft Excel, PowerPoint или Microsoft Access
' Word object library obyektiga havola o’rnatamiz 
'Eslatma: agarsi Windows NT da ishlayotgan bo’lsangiz 
'operator nomlarini o’zgartirishingiz kerak
' Dim xlsApp As Object
Dim xlsApp As Excel.Application
Set xlsApp = CreateObject("Excel.Application")
67
xlsApp.Visible = True
xlsApp.Workbooks.Add
xlsApp.Range("A1") = "Hello World!"
xlsApp.Workbooks(1).SaveAs _
("C:\MyNewExcelFile.xls")
xlsApp.Quit
End Sub
PowerPoint dasturni boshqarish:
Sub AutomatePowerPoint()
Dim pptApp As PowerPoint.Application
Dim pptPres As PowerPoint.Presentation
Dim pptSlide As PowerPoint.Slide
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Add
Set pptSlide = pptApp.ActivePresentation.Slides.Add(1, ppLayoutText)


pptSlide.Shapes("Rectangle 2").TextFrame.TextRange.Text = "Hello"
pptSlide.Shapes("Rectangle 3").TextFrame.TextRange.Text = _
"To the entire World!"
pptApp.Presentations(1).SaveAs _
("C:\NewPowerPointPresentation.ppt")
pptApp.Quit
End Sub
MS Access dasturini boshqarish 
Sub DisplayCatalog()
Static accApp As Access.Application
Set accApp = GetObject _
("C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb")
accApp.Visible = True
accApp.DoCmd.OpenReport "Alphabetical List of Products", View:=acNormal
accApp.Quit
End Sub
Outlook dasturini boshqarish 
Sub SendMail()
Dim olkApp As Outlook.Application
Dim maliNewMail As MailItem
Set olkApp = CreateObject("Outlook.Application")
Set maliNewMail = olkApp.CreateItem(olMailItem)
With maliNewMail
.To = "devtrain@microsoft.com"
.Body = "Please review the proposal I sent you."
.Send
End With
End Sub 
Dasturda qo’llaniladigan ayrim operatorlar 
Visible – ko’rinishi 
Quit – dasturdan chiqish 
Run – makrosni ishga tushirish 
Activate – dastruni aktivlashtirish 
Boshqa dasturlarda ko’plab metodlarning nomi ular bajaradigan ishlarga mos 
keladi. Masalan: Quit() Excel dasturidan chiqib ketadi. Word dasturidagi 
SaveChanges, Format, RouteDocument metodlari dasturdan chiqish paytida 
formatini o’zgartirib saqlab, xujjatlar bilan kimlar ishlayotgan bo’lsa, ularga 
jo’natishi mumkin. 



Download 376.93 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling