5.3. Кириллица берилген текстлерде латин ҳәриплериндеги текстге өткериўши макрослар жаратыўда VBA
Егер текст Өзбек тилинде берилген болса, онда ҳәриплер саны 35 болғанлықтан, алмастырыўда пайдаланатуғын массивлардың эементлери саны 35 ге тең болады (криллица ушын Dim a(1 To 35) As String ҳәм латын ҳәриплери ушын Dim b(1 To 35) As String). Бырақта кирллицадағы берилген Ё, Ц, Ч, Ш, Ю, Я ҳәриплери тексте сөз басында келгенде латында YO, TS, CH, SH, YU, YA ҳәриплерине емес, ал Yo, Ts, Ch, Sh, Yu, Ya ҳәриплерине өзериўы керек, оның ушын және қосымша массивларден пайдаланамыз (Dim b1(1 To 6) As String Dim b2(1 To 6) As String). Дәстлеп «b1» массиви элементлери сәйкес b2 массиви элементлери менен алмастырылады, кейин «а» массивиның элементлери сәйкес
«b» массивиның элементлерине алмастырылады. Макросты жаратыў 5.1 деги сыяқлы әмелге асырылады, бырақта программа коды төмендегише болады.
Sub Макрос1()
Dim a(1 To 35) As String
Dim b(1 To 35) As String
Dim b1(1 To 6) As String
Dim b2(1 To 6) As String
a(1)="а": a(2 ="б": a(3)="в": a(4 ="г": a(5) = "д": a(6) = "е": a(7) = "ё: a(8)="ж":a(9="з": a(10)="и": a(11)="й": a(12)="к":a(13)="л":a(14)="м" a(15)="н": a(16)="о": a(17)="п": a(18)="р": a(19) = "с: a(20)="т":a(21) ="у" a(22) ="ф": a(23)="х": a(24)="ц": a(25)="ч": a(26="ш":a(27)="ъ":a(28) = "ь" a(29)="э": a(30="ю": a(31)="я": a(32)=ChrW(1118): a(33)=ChrW(1179)
a(34)=ChrW(1171): a(35)=ChrW(1203)b(1) = "a": b(2) = "b": b(3) = "v"
b(4) = "g": b(5) = "d": b(6) = "e": b(7) = "yo" b(8) = "j":b(9) = "z": b(10) = "i" b(11) = "y": b(12) = "k": b(13)= "l": b(14) = "m" b(15) = "n": b(16) ="o"
b(17)= "p": b(18)="r": b(19) ="s": b(20)= "t": b(21) = "u" b(22) = "f": b(23)="x": b(24)="ts": b(25)="ch": b(26)="sh": b(27)="`": b(28)=""
b(29) = "e": b(30) = "yu": b(31) = "ya": b(32) = "o`": b(33) = "q": b(34) = "g`" b(35) = "h" :b1(2) = "Ё": b1(3) = "Ц": b1(4) = "Ч": b1(5) = "Ш": b1(6) = "Ю" b1(7)="Я": b2(2)= "Yo": b2(3) = "Ts": b2(4) = "Ch": b2(5) = "Sh":b2(6) = "Yu" b2(7) = "Ya"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
For i = 1 To 6
With Selection.Find
.Text = b1(i)
.Replacement.Text = b2(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i
For i = 1 To 35
With Selection.Find
.Text = a(i)
.Replacement.Text = b(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i
End Sub
Егерде берилген текст Қарақалпақ тилинде болса, онда 41 ҳәрп болғанлын есапқа алып дәстлеп кириллицадағы берилген ә, ң, ү, ө, ў, ы ҳәриплерин оларға сәйкес болған a’ , n’, u’. o’, w, ı ҳәриплерине алмастырамыз ҳәм кейин жоқарыдағы макростан (Макрос1) пайдаланамыз.
Программа коды төмендегише болады:
Sub Макрос2()
Dim a(1 To 6) As String
Dim b(1 To 6) As String
a(1)=ChrW(1241): a(2)=ChrW(1187): a(3)=ChrW(1199:a(4) = ChrW(1257
a(5) = ChrW(1118): a(6) = "ы": b(1) = "a`": b(2) = "n`": b(3) = "u`":
b(4) = "o`": b(5) = "w": b(6) = ChrW(305)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
For i = 1 To 6
With Selection.Find
.Text = a(i)
.Replacement.Text = b(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i
Макрос1
End Sub
Келтирилген программа кодларына ChrW( ) функциясы ислетилген болып, функцияда берилген санлар(код) клавиатурада болмаған (ә,ғ,қ,,ң,ө,ү,ў,ҳ) символларды қойыўда пайдаланылады. Бундай символларды программа кодында туўрыдан туўры ислетиўга болмайды. Макросты падаланыў төменде көрсетилгендей әмелге асырылады.
Макрос нәтийжеси томендегише болады.
ЖУЎМАҚЛАЎ
VBA тили дәстлеп Windows 95 ушын MS Office пакетиндеги тек Excel электрон таблицасы ушын ислеп шығылған, ал MS Wordта болса VBA дан бираз парқ қылатуғын Word Basic программаластырыў тили пайдаланылған. VBA ның эффективлиги ҳәмде оның имканыятлари жоқары болғанлықтан Microsoft фирмасы VBA ны Office пакетиндеги Word, Excel, Access, PowerPoint ҳәм Оutlook программалары менен байланыстырады.
Питкериў қәнигелик жумысы MS Word програграмасында Visual Basic for Application оталығи элелементлеринен пайдаланыў ҳаққында болып, ол кирисиў, бес параграф ҳәм жуўмақлаўдан турады.
Кирсиў болиминде MS Office пакети имканиятлары ҳәм MS Word програграмасында VBA проекти структурасы ҳәм оның объектлери ҳәққында түсиниклер келтирип отиледи. Питкериў қәнигелик жумысының биринши параграфи Microsoft Word та ҳүжжетлер үстинде әмеллерди орынлаў деп аталып, бул жерде Documents коллекциясы ҳәм Document объекти қәсийетлери ҳәм методлары содай ақ, Document объекттиң ҳәдийселери ҳәм олар менен ислеўлерди VBAда әмелге асырыў мысаллар менен бериледи. Екинши парагафта Абзацлар менен ислесиўдеги әмеллер ҳәмParagraph ParagraphFormat объектлери қәсийетлери оларда пайдаланылатуғын константалар келтирип отилди. Үшинши параграф текстлер үстинде әмеллерды иске асырыў ушын пайдаланатуғын объектлер ҳаққында болып, олардың методларын ҳәм элементлерин пайдаланыў мысаллар менен корсетилди. Питкериў қәнигелик жумысының төртинши параграфында таблицалар үстинде әмеллерди иске асырыў Онда Тable ҳәм оның ишинде басқа объектлерде ислетилеў берилди. Бесинши параграфта MS Word программасында VBA дан пайдаланып мәселелер шешиледи, онда символларды алмастырыў ушын макрос жаратыў, квадрат теңлемени шешиў ҳәм кириллица берилген текстлерде латин ҳәриплериндеги текстге өткериўши макрослар жаратыў корсетилди.
Do'stlaringiz bilan baham: |