Mavzu: Obyektlar modellari va avtomatlashtirish
Download 376.93 Kb. Pdf ko'rish
|
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
ma'muriyatiga murojaat qiling