Четверг, Ноябрь 14Вместе создадим светлое будущее!


Маълумотҳои умумӣ дар бораи забони барномасозии VBA

Чи хеле, ки медонем, мо дар арсаи пешравии техникаву технология зиндагонц мекунем. Дар замони ҳозира компютер хеле нақши калонро мебозад. Коргарони тамоми соҳаҳо: муҳосибон, иқтисодчиён, барномасозон, инженерон, хусусан коргарони бонк ва дигар ширкатҳои пешрафта барои ҳисобу китоб, сохтани барнома ва ба нақшагирӣ бе компютер кор ва фаъолият бурда наметавонандВАЗОРАТИ МАОРИФ ВА ИЛМИ ҶУМҲУРИИ ТОҶИКИСТОН

ДОНИШГОҲИ ДАВЛАТИИ ҲУҚУҚ, БИЗНЕС ВА СИЁСАТИ ТОҶИКИСТОН

Факултети инноватсия ва телекоммуникатсия

Кафедраи системаҳои ахборотӣ-ҳисоббарорӣ

дар мавзўи: Макросҳо дар Visual Basic for Applications (VBA)

Аз фанни «Коркард ва истифодабарии пакети барномаҳои амалӣ»

Иҷрокунанда: донишҷўи бахши 3-юми шўъбаи рўзона ихтисоси 1-40.01.01.03(т) «САКАИ дар фаъолияти молиявӣ-бонкӣ»
________________________

Роҳбари илмӣ:

Кори курси санаи «___» ______ 2013с. ба ҳимоя роҳ дода шуд.

Имзои роҳбар:__________
Аъзоёни комиссия: ___________ _______________________
(имзо) (Ному насаб)

___________ _____________________
(имзо) (Ному насаб)

Холҳои соибшуда: _______ Баҳо дар намуди анъанавӣ: _____________

ХУҶАНД – 2013

НАҚША:
Сарсухан……………………………………………… 3-4
1 Маълумот оиди забонии барномасозии VBA ……… 5-14
2 Дар муҳити Exsel тартиб додани китоби шахсии макросҳо ………………………………………………………………. 15-20
4 Таҳриркунии коди барномавии макрос дар муҳити VBA ……………………………………………………………………………… 21-29
5 Замимаҳо доир ба мавзӯъ………………………….. 30-35
Хулоса ……………………………………………. 36
Рӯйхати адабиётҳои истифодашуда ……………… 37

Сарсухан
Имрӯзҳо тараққиёти илму техникаҳои муосир моро водор месозад, ки ҳамаи ҷабҳои зиндагиамонро ба талаботҳои он мувофиқ гардонем. Ҳоло ягон соҳаҳое нест, ки тараққиёт, пешрафт ва тартибу равиши кораш берун аз истифодаи техникаю технологияҳои муосир бошад. Беистифода аз МЭҲ самаранокии кори кормандони илму техника, фарҳанг муҳандисон, табибон–хуллас тамоми соҳаҳоро тасаввур кардан имконнопазир аст.
Намудҳои гуногуни МЭҲ, ҳар рӯз истеҳсол ва ба истифода дода шуда истодааст, ба тарзи дигар,боиси самаранок коркард намудани ахбору маълумотҳои гуногун гардид.Барои ҳамин ҳам ба мо зарур аст, ки нафақат тартибу тайёр кардан ва ҳалли масъала ба кор даровардану истифодаи онҳоро низ донем.
Чи хеле ки таърихи инкишофи забонҳои барноманависӣ нишон медиҳад аз ҳамаи забонҳои алгоритмӣ забони алгоритмии Basic пояндатар аст.Ягон таъминоти барномаҳои системавӣ мавҷуд нест, ки дар он Basic ҳамчун забони барноманависӣ ба истифодабаранда пешниҳод нагашта бошад.
Компютерро аз рўи алгоритми муайян идора кардан лозим аст. Барои дар шакли ба компютер фаҳмо ифода намудани алгоритми ҳалли масъала забонҳои барномасозӣ хизмат менамоянд. Дар аввал ҳамеша алгоритми амалиётҳо тартиб дода шуда, сипас он дар яке аз забонҳои барномасозӣ навишта мешавад. Дар натиҷа матни барнома – ифодаи пурраи алгоритм дар забони барномасозӣ ҳосил мегардад.
Навиштани барнома дар коди мошинӣ ниҳоят мушкил аст. Бинобар ин амалан ҳамаи барномаҳоро бо ёрии забонҳои барномасозӣ офарида мешаванд.
Забонҳои барномасозӣ – забонҳои сунъӣ ба шумор мераванд. Онҳо аз забонҳои табиӣ бо шумораи маҳдуди «калимаҳо», ки мазмуни ҳар яке аз онҳо ба транслятор фаҳмо аст, ҳамчунин бо қоидаҳои аниқи навишти фармонҳо (операторҳо) фарқ мекунанд.
Бо ёрии забони барномасозӣ на барномаи тайёр, балки танҳо матни барнома, ки алгоритми пешаки тартибдодашударо ифода менамояд, офарида мешавад. Барои ҳосил кардани барномаи коркунанда матни барномаро ё ба таври автоматӣ бо забони мошинӣ гардонида, сипас онро алоҳида ҷудо аз матни ибтидоии барнома истифода бурдан мумкин аст ва ё фармонҳои забони барномасозии дар матни барнома нишондодашударо якбора иҷро кардан лозим аст. Мисолҳои маъмули забонҳои объекти ин забонҳои барномасозии Visual Basic ва Delphi мебошанд.
Бо тараққиёти фаъоли шабакаи умумиҷаҳонӣ якчанд таҳрирҳои забонҳои барномасозии маъмул, ки махсус барои интернет мутобиқ кунонида шудаанд, офарида шудаанд. Забонҳои барномасозии HTML, Perl, PHP, XML аз қабили чунин забонҳо ба шумор мераванд.
Аз забонҳои барномасозии универсалии дар ҷаҳони имрўза аз ҳама маъмултаринашон инҳоянд:
BASIC, Pascal, C++, Java, C#, Visual Basic ва ғайраҳо.
Суоле ба миён меояд,ки худи VBA чист?
VBA (Visual Basic for Appllication) –ин забони барномасозие мебошад,ки барои васеъ кардани имкониятҳои барномаҳои пакетҳои MS Office пешбинӣ шуддаст. Ин забон дорои имкониятҳои васеъ мебошад.Яке аз имкониятҳои VBA ин Макрос мебошад. Макрос- барномае аст, ки ба таври автоматӣ навишта мешавад.
Кори курсии ман низ дар доираи VBA буда, дар мавзўӣ «Макросҳо дар VBA» навишта шудааст. Кори курси аз 7-қисмат иборат аст:
Сарсухан, Маълумот оиди забонии барномасозии VBA, Дар муҳити Exсel тартиб додани китоби шахсии макросҳо, Таҳриркунии коди барномавии макрос дар муҳити VBA, Замимаҳо доир ба мавзӯъ, Хулоса ва Рўйхати адабиётҳои истифодашуда мебошанд. Маълумотҳои мушахасро дар замимаҳои поён мушоҳида хоҳед кард.

Маълумоти мухтасар дар бораи забони барномасозии Visual Basic For Application
Visual Basic For Application (дар оянда VBA) – шакли соддакардашудаи забони барноманависии Visual Basic буда, дар дохили бастаҳои Microsoft Office насб карда шудааст ва инчунин дар дигар бастахои барномаҳои гуногун аз қабили AutoCAD, WordPerfect и ESRI ArcGIS низ мушоҳида мешавад. VBA ин забони барноманависие мебошад, ки барои васеъ кардани имкониятҳои барномаҳои бастаҳои Microsoft Office пешбинӣ шудааст.
Яъне бо ёрии VBA мо метавонем кори барномахои мазкурро қисман автоматӣ кунонем. Бо истифода аз имкониямҳои VBA мо метавонем функсияҳои дилхоҳамонро дар MS Excel нависем. Инчунин мо метавонем ба дигар барномаҳои Microsoft макросҳо тартиб диҳем. Умуман имкониятҳои VBA хеле зиёданд, ки мо қисме аз онҳоро дар рафти иҷроиши кор дида мебароем.
Пеш аз он, ки бо редактори VBA кор кунем онро дояд ба кор андозем.
Дар ҳама барномаҳои Microsoft Office ин як тарзи кушоданро дорад:
Оғози кор дар редактори Vsual Basic бо истифодаи забони барноманависии VBA:
 Протсессори ҷадвалии MS Excel – ро ба кор медарорем. (Пуск/Программы/ MS Excel);
 Дар меню Сервис/Макрос/Редактор Visual Basic – ро интихоб мекунем;
 Роҳи аз ҳама тезтар ин якҷоя пахш намудани тугмачаҳои +;

Дар натиҷа редактори Visual Basic кушода мешавад:

Редактори Visual Basic якҷоя бо барномае, ки онро хабар додааст (дар ин ҷо бо ёрии MS Excel мо редактори Visual Basic – ро хабар додем) кор мекунад. Барои гузаштан аз редактори Visual Basic ба MS Excel ва баръакс якҷоя пахш намудани тугмачаҳои + истифода бурда мешаванд, (дар редактори Visual Basic такрори якҷояпахши +) лозим аст.
Дар ин ҷо 4 – қисми асосии редактори Visual Basic – ро шарҳ медиҳем:
1.Сатри менюи асосӣ, ки аз бандҳои алоҳида иборат аст, ва ҳар як банд вазифаҳои хоси худро иҷро мекунанд. Аз он ҷумла сабт кардани барнома ё функсияи сохташуда, ба чоп баровардани коди барномавӣ, тағйирот даровардан, илова намудани модулҳо ва формаҳо, тафтиш намудани коди навишташуда, ба кор андохтани барномаҳои тартибдодашуда ва ғайраҳо.
2. Оинаи роҳбалади Project Explorer (проект – лоиҳа). Одатан ҳангоми ба
редактори Visual Basic ворид шудан оинаи Project Explorer кушодааст, агар
ногаҳон Шумо онро сахт намоед се роҳи кушодани он мавҷуд аст.
 Якҷояпахшии тугмачаҳои +;
 пахш намудани тугмачаи Project Explorer дар лавҳаи асбобҳо;
 Бо ёрии менюи View/ Project Explorer.
Дар оинаи Project Explorer рўйхати қисмхои забони барноманависии VBA оварда шудаанд. Модулҳо, Формаҳо ва ғайра.
3. Оинаи Модул1. Дар ин оина мо дилхоҳ протседура ва ё функсияҳоро
менависем, яъне ин майдонест барои навиштани коди барнома.
4. Оинаи хосиятҳо. Хосияти объектҳои ҷорӣ дар ин оина нишон дода мешаванд. Дар ин ҷо оинаи Модул1 ҷорӣ аст ва хосияти онро нишон дода истодааст, яъне дар ин олат Модул1 фақат хосияти ном – ро дорад. Дар ин оина мо метавонем номи Модул1 – ро тағйир диҳем. Одатан ҳангоми ворид шудан ба муҳити VBA (редактори Visual Basic) оинаи Модул нест мешавад ва барои онро пайдо кардан ду роҳ мавҷуд аст:
 менюи Insert/Module
 дар оинаи Project Explorer номи барномаамонро (дар ин ҷо Книга1) бо ёрии мушак интихоб карда, тугмачаи рости мушакро пахш мекунем ва як менюи иловагӣ пайдо мешавад. Дар он меню Insert – > Modul – ро интихоб мекунем:

Дар амаликунонӣ ва истифодабарӣ сохтани замимаҳои ҳақиқӣ барои ҳалли масъалаҳои таҷрибавӣ дар муҳити Microsoft Windows мебошад. Метавон гуфт, ки VBA ин ояндаи забони барномасозии Basic мебошад. Ин забон нисбати дигар забонҳо як қадам дар пеш аст ва имкониятҳои хеле зиёдеро дорост. Масалан дар қисми дохилкунӣ дар экран ҳамаи имкониятҳои форма мушоҳида мешавад, ба ҳам алоқамандӣ бо дигар замимаҳо низ дида мешавад.
Чун аз рӯи таҷрибаҳо бармеояд замима яке аз тағйирёбандаҳои осонтар ба ҳисоб меравад, ки он ба талаботҳои муҳим ҷавоб медиҳад. Аз ин лиҳоз VBA –ро метавон дар ҳамаи намудҳои замимаҳо мушоҳида кард.
Дар ҷаҳони имрӯз миллионҳо намуди нусхаҳои Microsoft Office истифода бурда мешавд. Аз ин бармеояд, ки замимаҳои дигар фирмаҳо ба мисоли Visio, Auto cad, Word Perfect ва ғаёраҳо истифода бурда мешавад.
Бисёр намуди VBA –ҳо ҳама ба бозорҳои махсус нигаронида шудаанд. Ба сифати мисол мо метавонем замимаҳоеро, ки барои идоракунии истеҳсолоти истифодабарандагони хатти коргарон истифода бурда мешавад, мисол меорем. Мисоли дигар замима барои дастгирӣ намудани хабарҳое, ки барои гурӯҳҳои техникӣ ёрии худро ба талабгорон ё дигар эҳтиёҷмандон мерасонанд.
VBA -ро метавон дар барномасозии тиҷоратӣ, инжинерӣ- сохтмонӣ, телефонӣ, тозакунии маълумотҳо, идоракунии ҷуфти ҳуҷҷатҳо, хизматрасонии молиявӣ, хидматрасонии юридикӣ ва тиббӣ истифода барем.
Мақсади барномасозӣ- аз он шаҳодат медиҳад, ки компютер бояд гуфтаи моро иҷро кунад. Мо мегӯем компютер иҷро мекунад. Масалан мо метавонем ба мошина чунин фармонҳоро диҳем:
 Кушодани оина ва тугмачачаҳои меню
 Сохтани майдон ва дохил намудани рӯзи таваллуд
 Пахши тугмаи «синну солро нишон деҳ» ва он маълумоти дохил кардаамон, яъне синну солро нишон медиҳад.
Чуноне ки мо медонем компютер забони инсониро намефаҳмад, барои ҳамин ба мо лозим аст, ки коди барномавиро тартиб диҳем . Барои тартиб додани коди барномавӣ мо аз терминологияҳои ягон забони барномасозӣ истифода мебарем. Новобаста аз мушкилиҳо ба мо лозим аст, ки коди барномавиро дастӣ чоп кунем.
Қисми асосии VBA забони барномасозӣ мебошад. Мисол меорем, коди VBA- ро:
Sub f1()
Dim baho As Integer
baho = InputBox(\”Бахоро дохил намоед\”)
Select Case baho
Case 1, 2
MsgBox \”Бад\”
Case 3
MsgBox \”Миёна\”
Case 4
MsgBox \”Хуб\”
Case 5
MsgBox \”Аъло\”
Case Else
MsgBox \”Чунин бахо мавчуд нест\”
End Select
End Sub

Бояд муаммоҳои бехатариро дар муҳити макрос дар ёд дошта бошем!
Дар намудҳои охирини Exсel муаммоҳои бехатарӣ вобаста ба макрос ба миён меояд, ки онҳо калид ба ҳисоб меравад.
Сабаби он асбоби пурқувват доштанаш аст. Онҳо метавонанд дар компютери мо ва аз дигар компютерҳои локалӣ муаммоҳои зиёдеро ба миён оварда метавонад. Мутаасифона ҳамагон инро намедонанд.
Параметрҳои бехатарӣ дар оинаи муоширатӣ Центр управления
безопасностью нишон дода шудааст.
Барои кушодани ин оина чунин амалиётҳоро бояд иҷро кард:
1. Файл ► Параметры –риро интихоб мекунем.
2. Дар оинаи муоширатӣ Параметры Excel –ро ба қисмати Центр управления безопасностью –ро ҷудо мекунем.
3. Тугмачаи Параметры центра управления безопасностью-ро пахш мекунем.
4. Ба қисмати Параметры макросов мугузарем.

Зикр кардан ҷоиз аст, ки дар Exsel бояд ба ҳолати Отключить все макросы с уведомлением гузарем. Дар вақти соз кардан агар мо китоби макросро кушоем, макрос хомӯш мешавад, лекин Exсel ба аз бехатариаш хабар медиҳад.
Агар мо қонеъ бошем, аз манбаи тафтишот тугмаи Параметры ва оинаи Параметры безопасности Microsoft Office –ро интихоб мекунем ва дар ҳолати Включить это содиржимое- нигоҳ медорем, ки макрос гирон мешавад.
Ҳаминро қайд кардан мехоҳам, ки оинаи муоширатии Запись макроса дар заманаҳои гуногуни Microsoft Office 2010 – Word, Exsel, Power Point ба назар гуногунанд.
Қоидаҳои сабти макроси нав барои ҳамаи замимаҳо якхелаанд. Барои ин қоидаҳои зеринро донистан лозим аст:
 Номи макросро бояд бо ҳарф оғоз гардад, он метавонад рақамӣ ё символӣ бошад.
 Номи макрос наметавонад муаммо ё аломатҳои махсусро дошта бошад (символҳои махсус)
 Дарозии максималӣ бояд 80 символро дошта бошад
Барои ҷудо намудани калима метавон символи хатчаро истифода бурд: Хулоса _аз _хатҳо, лекин хуб мешавад, ки барои истифодабарии ҳарфҳои калонро дар дохили номҳо истифода барем; мисол,ХулосаАзХатҳо
Вобаста аз замимае, ки мо макрос месозем ( Редактори VB, Word, Exsel), оинаи Запись макроса метавонад, дорои майдон – масалан майдони навиштаҷоти макрос баъди нишондоди ҷойи нигаҳдории номи макрос ё ки комбинатсияҳои тугмачаи макрос мебошад.
Дар замимаи Word дар оинаи муоширатии Запись макроса новобаста аз Exсel дар гӯрӯҳи Назначить макроса дорои 2 тугмаи иловагӣ мебошад: Тугмаи (Button ) ва тугмаи (keyboard ).
Ин тугмаҳо имконият доранд, ки функсияҳои фармоиши макросро аз худ намуда ба тугмаи нави панели асбобҳо барои он фармоиши комбинатсияи дигарро бояд иҷро кунад.

Баъди пахши яке аз ин тугмаҳо як оинаи муоширатӣ пайдо мешавад, ки дар он бояд фармони муносибатро додан лозим аст.

Ҳаминро қайд кардан лозим аст, ки барои ҳамаи замимаҳои Microsoft Office дар оинаи муоширатии Запись макроса дорои якчанд элементҳои умумӣ мебошанд.
 Майдони Номи макрос -дар ин ҷо номи макроси зикр шуда сабт шудааст, ки VBA онро дар майдони мафҳумҳои макрос ҷойгир менамояд.
 (Поле описание )- Майдони навиштаҷот дар ин матнҳои дилхоҳ, маълумот дар мавзӯъи макроси додашуда ҷойгир аст.
Зикр кардан лозим аст, ки VBA ин оинаи маълумотҳо пур мекунад. Дар он аз тарафи кӣ ва кай сохташудани ин маълумотро нишон медиҳад.
 Рӯйхати макросҳои дастрас – ин элемент номгӯи ҳуҷҷатҳоеро нигоҳ медорад, ки макрос онҳоро сабт кардааст.
Ҳамон ҳуҷҷатҳоеро интихоб мекунем, ки дар он бояд макроси нав сабт карда шавад.
Бояд донем, ки дар Word 2010 макросҳо дар ҳуҷҷати формати .docm ё дар файли шаблонҳои форматашон. dotm. сабт
мегардад. Ғайр аз ин макрос метавонад ҳуҷҷат ё шаблонро дар формати Word 97-2003(.doc ё .dot) нигоҳ дорад.
Дар Exсel 2010 макросҳоро дар китоби кории формати .xlsm ё .xlsb дар шаблони формати .xltm ва ҳуҷҷатҳо дар формати Exсel 97-20039(.xls ) сабт мегардад. Барои якбора сабт намудани ммакрос дар ҳамаи замимаҳо пахши тугмаи OK дар оинаи муоширатии макрос пайдо мешавад.

Сабти макрос
Кор бо макроси Exсel дар лавҳаи Visual Basic
Макросҳо дар Exсel
Дар барномаи пакети MS Office як роҳ пешбинӣ шудааст, ки барои навиштани барномаҳо бедонистани забони барномасозии VBA ба мо имконият медиҳад, ки ин роҳ макрос ном дорад.
Макрос низ барномае мебошад, ки ба таври автоматӣ навишта мешавад. Барноммаҳои пакети MS Office 2003 чунин сохта шудааст, ки барои навиштани макрос иҷозат намедиҳад.
Пеш аз он ,ки дар ин барномаҳо ба навиштани макросҳо щурӯъ кунем дар менюи Сервис – макрос – безопасность истифода барем.
Дарҷаи бехатарӣ (уровень безапасности) средное ё низкое –ро интихоб мекунем.

Бо ёрии макросҳо мо танҳо барномаҳои соддаро дар VBA навишта метавонем, лекин дар баъзе мавридҳо ин макросҳо бисёр зарурӣ буда, вақти зиёдеро сарф мекунанд. Барои сохтани макрос мо бояд чунин роҳро истифода барем:
1. Дар менюи Сервис – макрос –(фармони )-Начать запись –ро интихоб мекунем. Дар натиҷа оинаи муоширатӣ – Запись макроса кушода мешавад. Номи макрос (имя мароса ) бояд бо рақам оғоз нашавад.
Пробел ё аломатҳои китобатӣ надошта бошад. Дарозии номро то 64 рамз шуда метавонад.
А) Баназаргирӣ – (сочетание клавиш) ин ба монанди тугмачаи «хониш» пешбинӣ шудааст, яъне бо якҷояпахши тугмачаи Ctrl ва тугмачаи (Масалан, Ctrl ва якҷояпахши А, F ва ғайраҳо ) дигар шуда метавонад, макроси сохтаи мо ба кор дароварда мешавад.
Б) Нигаҳдорӣ –« сохранить в» , Макроси сохташуда бояд дар куҷо нигоҳ дошта шавад, яъне дар ҳамин китоб (это книга) китоби нав ва ё дар китоби ноаёнӣ , китоби шахсии макроҳо (личная книга макроса ) нигоҳ дошта шавад.
Эзоҳ!
Дар ин майдон мо бояд донем, ки ин макрос барои кадом мақсад истифода мешавад. Макрос бояд кадом корро ба анҷом расонад:
2) Баъд аз пахш намудани тугмачаи OK сабти макрос оғоз меёбад, дар майдони корӣ MS Exсel як лавҳаи майда пайдо мешавад, ки тугмачаи ист(стоп) барои доштани сабти макрос дар он воқеъ аст.
Агар ногаҳон кори макросро тамом накарда онро сабт кунем бароои қатъ кардани сабти макрос фармони остановить запись (боздоштани сабтро)-ро пахш бояд кард.
3)Агар мо барои ба кор даровардани макрос якҷояпахши тугмачачаҳои (Ctrl+A) интихоб накарда бошем, дар ин ҳолат мо метавонем макроси сохтаамонро бо ёрии менюи сервис -макрос интихоб намуда ё якҷояпахши тугмачаиҳои ALT+F-ро иҷро мекунем.
Оинаи муоширатии макрос кушода мешавад. Дар амал муоширатии макрос, макроси заруриро интихоб карда тугмачаи Выполнить барои ба кор даровардани макрос, Отмена барои баромадан аз ин равзана, Войти барои ба редактори ворид шудан Изменить -барои тағйир додани макрос истифода мешавд.
Создать-барои макроси нав сохтан, ҳатман дар майдони (имя макроса) номи макроси навро дохил кардан зарур аст.
Удалить- барои тоза кардани макрос ва параметри макрос истифода бурда мешавад. Баъди пахши ин тугмача оинаи муоширатии параметри макроса кушода мешавад. Дар равзанаи муоширатии параметри макроса мо метавонем барои ба кор даровардани макроси сохтаашон бо ёрии якҷояпахши тугмачаҳои клавиатура ягон тугмачаро интихоб кунем. Масалан, агар дар майдон Ctrl+A –ро навишта тугмачаи OK –ро пахш кунем, ҳангоми якҷояпахши тугмачаи Ctrl+A макроси мо кор мекунад.

Китоби шахсии макросҳо.
Макросҳо, протседураҳо ва функсияҳоеро , ки то ин дам, дида баромадем, танҳо ҳамон китоби (MS Exсel), ки мо онҳоро навиштем кор мекунанд тамом. Агар хоҳед, ки онҳоро дар ҳамаи китобҳо (ҳамаи файлҳои MS Exsel ) кор кунанд онҳоро дар Китоби шахсии макросҳо менависем. Барои ин:
* Просессори ҷадвалии MS Exsel -ро мекушоем.
*Бо ёрии менюи Сервис\\Макрос фармони Начать запись-ро интихоб мекунем.
*Дар оинаи муоширатии Запись макроса дар майдони Сохранить в Личная книга макросов-ро интихоб мекунем.

• Тугмачаи Ok-ро пахшкарда ягон амалро иҷро накарда тугмачаи Остановить запись –ро пахш мекунем ( Сервис/ Макрос фармони Остановить запись) пахш мекунем.
• Бо ёрии Сервис/ Макрос/редактор Visual Basic ё якҷояпахшии + ба редактори Visual Basic ворид мешавем.
• Дар оинаи роҳбалади Project Explorer (проект- лоиҳа )як лоиҳаи бо номи PERSONAL.XLS пайдо мешавад.

Мо метавонем ба ин лоиҳа як чанд Module илова намоем.
• Агар оинаи Модули ин лоиҳаро (PERSONAL.XLS) кушоем танҳо саршавии протседураи Макрос1 ва тамомшавии он ҷой драд. Зеро мо ягон амалро иҷро накардаем.Акнун Модулро мекушоем.

* Модулҳое,ки дар лоиҳаи PERSONAL.XLS ҷойгиранд барои ҳамаи китобҳо (файлҳои MS Exсel) дастрас мебошад.
* Дар ҳамин модул як функсияро менависем. Аввал протседураи Макрос1 –ро тоза мекунем.Баъдан функсияи зеринро менависем.
Function Хафта(Сана As Date) As String
Хафта = WeekdayName(Weekday(Сана), , 1)
End Function
Мо дар муҳити Exsel функсияи ҳафтаро дохил намудем.Баъди дохил намудан ба муҳити Exsel дохил шуда,тугмачаи Fx –ро интихоб менамоем ва чунин оина пайдо мешавад.Ин оинаи Мастер функсий мебошад, аз ин ҷо мо категорияашро интихоб менамоем:Категория:Определенные пользователем- ро интихоб мекунем ва тугмачаи OK-пахш мекунем:

Натиҷаи амалиёт чунин аст:

Иҷрошавии макросҳо
Мазмуни асосии макрос дар он зоҳир мегардад, ки дар имкониятҳои даркунии минбаъда дар вақти иҷроиш дониста мешавад.
Мо мушоҳида мекунем, ки макросҳои корҳои мушкилро иҷро карда метавонанд.
Аз ин бармеояд, ки макросҳои барномасозии VBA, барои сабти автоматии макросҳо истифода бурда мешавад.
Ҳама вақт метавон аввал оинаи муоширатии макросро сабт кард (Alt+F8), дар макроси заруриро интихоб намуда, баъдан тугмачаи Выполнитьро (в Power Point это кнопка Запуск) пахш мекунем.

Оинаи муоширатии макрос дар бисёр VBA-ҳо ба таври автоматӣ сабт намудани макрос ягон хел « хирад » -и макросро иваз карда наметавонад, ки ин аз рафтори тағйироти ҳолат вобаста аст. Дар оянда метавонад командаи сабтшударо дар ин ҳолати дар замима сабт кунад.
Масалан, агар макрос пешниҳод кунад, ки шумо дар аввали ҳуҷҷат ҳастед, вале дар асл дар охири ҳуҷҷат қарор доред, баъд маълум мешавад, ки ягон команда иҷро нашудааст.
Агар макросро даъват кунем барои бо матн кор кардани он дар вақти сохтани расм, макрос метавонад соатҳои зиёд кор кунад, лекин дар баъзе ҳолатҳо кори мо сабт намешавад.
Новобаста аз мушкилиҳо макрос, ҳуҷҷатҳоро пеш аз сабташон командаи Отменить-ро (Ctrl + =>) истифода барем.

Макросҳо дар MS Word
Барои беҳтар наамудани суръати коркарди матнҳои тоҷикӣ тавассути компютер истифода намудан мумкин аст. Барномаро дар муҳити VBA навишта имкониятҳои онҳоро истифода мебарем. Моҳияти асосии кори барнома аз он иборат аст, ки таввасути барнома гузаштани ҳарфҳои тоҷикӣ (ҳ,ҷ,ғ,ӯ,қ,ӣ ) 6-то ҳарфҳои тоҷикӣ то як андоза автоматӣ кунонида мешавад.
Барои ин проссесори матнии Word -ро ба кор медарорем, тавассути якҷояпахши тугмачаҳои ALT+F11 (Сервис- макрос- Редактор VB) ба муҳити VBA ворид мешавем. Дар муҳити барномаи Word 3- макрос тартиб медиҳем.(Сервис –Макрос –Начать запись) .

Tаҳриркунии макрос ва роҳи сохтани коди барномавӣ
Набояд, аз хотир баровард, ки роҳи сабти макрос фақат чанги электронӣ мебошад. Ин дар он вақте ки мо мустақил коди VBA –ро созем.Дар ҳақиқат дар он вақт мо метавонем макросро бисётар истифода барем.
Бисётар барномаҳои VBA ба объект сахт вобастагӣ доранд, метод ва хосиятҳо асосан ба замима нигаронида шудаанд. Ба ҷои оне, ки командаи заруро чоп кунем, мо метавонем онро чун макрос сабт кунем.
Дар хотир бояд дошт, ки дар вақти сабти макрос ҳамаи он командаҳоеро, ки мо истифода мебарем пай дар пай бо оператори забони VBA навишта мешавад ва сабт мегардад. Ҳамин тариқ коди барномавиро метавонем дар намуди асосӣ дар барномаи худ истифода барем, дар баъзе ҳолатҳо зарурӣ метавон операторҳоро ҳамроҳ намоем.
Таҳриркунии коди барномавии макрос дар таҳрири VBA
Баъди он, макрос сабт шуд, барномаи гирифтаи VBA –ро мо метавонем аз нав таҳрир кунем (ё ки сатро аз назар гузаронем).Ин амалиёт чунин намуд дорад:
1) Сервис-Макрос-Макросы (ё ин ки <ALT+F8) барои кушодани оинаи муоширатии Макрос.
2) Макроси лозимаро аз рӯйхати поёнии майдони Имя интихоб мекунем.
Макросҳое, ки мо сабт намудем ба таври автоматӣ иҷро намешавад, барои ҳамин ҳамаи рӯйхатро варақгардон кардан лозим аст.
Дар муҳити барномаи Word 3- макрос тартиб медиҳем.(Сервис –Макрос –Начать запись) .

Имкониятҳои макрос
Ҳамаи имкониятҳои таҳриркунии макросро дар редактори VB мушоҳида кардан мумкин аст. Воқеан ин имкониятҳое мебошанд, ки барои сохтани ҳама гуна барномаҳои VBA истифода бурда мешавад.
Sub маош()
\’ маош Макрос
\’ ндс Макрос записан 18.11.2013 (SONY)
\’ Сочетание клавиш: Ctrl+o
Range(\”D2\”).Select
ActiveCell.FormulaR1C1 = \”13\”
Range(\”D3\”).Select
ActiveCell.FormulaR1C1 = \”13\”
Range(\”D4\”).Select
ActiveCell.FormulaR1C1 = \”13\”
Range(\”D5\”).Select
ActiveCell.FormulaR1C1 = \”13\”
Range(\”D6\”).Select
ActiveCell.FormulaR1C1 = \”13\”
Range(\”D2\”).Select
ActiveCell.FormulaR1C1 = \”\”
Range(\”D3\”).Select
ActiveCell.FormulaR1C1 = \”\”
Range(\”D4\”).Select
ActiveCell.FormulaR1C1 = \”\”
Range(\”D5\”).Select
ActiveCell.FormulaR1C1 = \”\”
Range(\”D6\”).Select
ActiveCell.FormulaR1C1 = \”\”
Range(\”C2\”).Select
ActiveCell.FormulaR1C1 = \”5200\”
Range(\”C2\”).Select
Selection.Cut Destination:=Range(\”D2\”)
Range(\”C2\”).Select
ActiveCell.FormulaR1C1 = \”5200\”
Range(\”D2\”).Select
ActiveCell.FormulaR1C1 = \”=RC[-1]*13%\”
Range(\”D2\”).Select
Selection.AutoFill Destination:=Range(\”D2:D6\”), Type:=xlFillDefault
Range(\”D2:D6\”).Select
Range(\”E7\”).Select
End Sub

 Ташкил намудани такрорёбии командаҳо дар макрос
Баъзе вақт ба мо лозим мешавад, ки як командаро якчанд маротиба такроран иҷро кунем.
Дар ин вақт ҳамаи он чизҳои ба мо даркорӣ- ин ба барнома ҳамроҳ намудани For….Next:
 Ташкили командаҳо дар макрос бо шумораи такрорёбиҳо новобаста аз вақти кории макрос
Функсияи Inputbox-ро метавонем ҳамроҳ кунем.Дар вақти дохилкунӣ дар экран шумораи такрорёбии охирон пайдо мешавад.
 Барои сохтани макрос ҳамроҳ намудани функсияи даъват лозим аст.
 Дар вақти ҳамроҳ намудани Inputbox мо метавонем матни заруриро гузорем.
 Ҳамроҳ намудани имконият пеш аз ба кор андохтани макрос
Ҳар гоҳ барои кори дурусти макрос, матн, объекти графикӣ ё дигар объект лозим аст.
Сохтори If….End дар забони VBA имкон медиҳад, объекти интихобшуда мутобиқ ояд, барои доштани имконият дар вақти қатъ гардидани кори макрос пайдо мешавад.
Хуллас функсияҳо ин осонкунандаи кори макрос мебошад.
Мо метавонем якчанд мисолҳо доир ин мавзӯъҳо меорем.
Масалан мо метавонем макросҳои сохтаамонро форматашонро дигаргун созем.
1.Мисол ягон ячейкаро ба кор меандозем.
2.Комбинатсияҳои тугмаҳои Ctrl+o ё ин ки командаи Сервис- Макрос-Макросы-ро дар оинаи муоширатии «Танзими_ячейкаҳо» тугмачаи «Выполнить»-ро пахш мекунем.Барои натиҷа гирифтан бояд барномавӣ, агар зарур бошад чунин амалиётро иҷро менамоем.
1) Оинаи муоширатии Макросро кушода аз он ҷо тугмаи «Изменить»-ро интихоб мекунем.Оинаи редактори VB кушода мешавад ва кодро навишта шрифташро ба FontStyle “курсив ” ва рангашро ба (Color Index=5) иваз менамоем.
Sub Òàíçèìè_ß÷åéêàõî()
\’Òàíçèìè_ß÷åéêàõîè ìàêðîñ
\’Ìàêðîñ çàïèñàí.03.01.2014
Ñî÷åòàíèå êëàâèø: Ctrl o
\’With Selection
.Horizontal Alignment = xlGeneral
.Vertical Alignment = xlBotton
.WrapText = False
.Orientation = 90
.Add Index = False
.IndentLevel = 0
.ShrinkToFit = xlContext
MergeCells = False
End With
With Selection.Font
.Name = \”Times New Roman\”
.FontStyle = \”êóðñèâ\”
.Size 18
.Strikethrough = False
.Superscript = False
.Out lineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.Color Index = xlAutomftic
End With
With SelectionInterrior
.Color Index = 5
.Pottern = xlSolid
.Pottern ColorIndex = xIAutomftic
End With
End Sub

Оинаи редактори VB

Якчанд роҳҳои ба кор андохтани макрос мавҷуд аст:
Роҳи 1-ум. Ба кор андохтани макрос бо воситаи командаи Сервис- Макрос- Макросы.
Роҳи 2-ум. Мутобиқкунонии тугмаҳо.
Роҳи 3-ум. Ба макрос тугмаи командавиро фармон додан.
Барои сохтани тугмаи командавӣ, бояд:
1)Лавҳаи асбобҳои Форма-ро мекушоем бо воситаи Вид-Панель инструментов-Формы
2) Тугмачаҳои панели асбобҳои формаро бо воситаи муш ҷойгир мекунем, дар оинаи муоширатии пайдошуда, ки он «Назначить макрос объекту» макроси махсусро интихоб намуда, тугмаи «OK»-ро пахш мекунем.
Аз рӯйхат Кнопкаи 1 ҷудо намуда тугмаи командавии мутобиқро интихоб мекунем.
Он тугмачаро боз якбори дигар пахш мекунем.

Ба макрос амалиёти графикиро фармон медиҳем.
Барои ин мо бояд чунин амалиётҳоро иҷро намоем:
1) Панели Рисования-ро дар автофигура гирифта расмро ба онҷо мегузорем.
2) Ба он расм андозаи муайянеро медиҳем.
3)Ба он расм тугмачаи рости мушро пахш намуда, менюи контекстиро интихоб менамоем. Назначить макрос
4)Дар оинаи муоширатии Назначить макрос объекту мо макроси лозимиро интихоб намуда, тугмаи «OK»-ро пахш мекунем.

Роҳи 5-ум.Интихоб намудани тугмаи панели асбобҳо
Барои истифода бурдани имкониятҳои Назначить макрос кнопке на панели инструментов бояд чунин амалиётҳо иҷрокарда шавад :
1. Бояд командаи Сервис – Настройка
2. Дар оинаи муоширатӣ Настройка ба вкладкаи Команды ва рӯйхати категорияи макросы -ро интихоб намуда дар рӯйхат Команды-Настраиваемая Кнопка мегирем.
3. Настраиваемая Кнопка-ро ба ягон дигар панели асбобҳо мегузаронем.
4. Пахши рости тугмачаи муш дар тугмаи нав менюи констекстиро аз боби Выбрать значок для кнопки интихоб намуда, аз рӯйхат ягонтои онро нишон медиҳем.
5. Боз аз нав менюи констекстиро кушода нуқтаи заруриро,яъне Назначить макрос –ро интихоб мекунем.
6. Дар оинаи муоширатии кушодашуда, Назначить макрос –ро ҷудо намуда тугмаи ОК-ро пахш мекунем.
7. Оинаи муоширатии Насройкаро мепӯшем.

Барои мисол «Танзими-Ячейкаҳо » ва расмҳои графикӣ дар Панели асбобоҳоро интихоб мекунем.
Дар объектҳои лозима тугмачаҳои заруриро пахш мекунем ва мо макросро иҷро менамоем.

Замимаҳо доир ба мавзӯъ
Sub Макрос1()
\’ \’Найти в перед Alt+S
\’ идомаи чустучу
\’ Alt+s
tt0:
Selection.Find.Forward = True
Selection.Find.Text = \”^?\”
If Selection.Find.Execute = False Then Exit Sub
If Selection.Text = \”у\” Then GoTo tt1
If Selection.Text = \”к\” Then GoTo tt1
If Selection.Text = \”г\” Then GoTo tt1
If Selection.Text = \”ч\” Then GoTo tt1
If Selection.Text = \”х\” Then GoTo tt1
If Selection.Text = \”У\” Then GoTo tt1
If Selection.Text = \”К\” Then GoTo tt1
If Selection.Text = \”Г\” Then GoTo tt1
If Selection.Text = \”Ч\” Then GoTo tt1
If Selection.Text = \”Х\” Then GoTo tt1
If Selection.Text = \”и\” Then
If symbol() = True Then GoTo tt1
End If
GoTo tt0
tt1:
End Sub
Sub Макрос2()
\’Заменить найденное Alt+D
\’ивазнамои
\’ Alt+d
Dim z As String
If Selection.Text = \”у\” Then z = ChrW(1118)
If Selection.Text = \”к\” Then z = ChrW(1179)
If Selection.Text = \”х\” Then z = ChrW(1203)
If Selection.Text = \”г\” Then z = ChrW(1171)
If Selection.Text = \”ч\” Then z = ChrW(1207)
If Selection.Text = \”и\” Then z = ChrW(1251)
If Selection.Text = \”Ч\” Then z = ChrW(1206)
If Selection.Text = \”Х\” Then z = ChrW(1202)
If Selection.Text = \”К\” Then z = ChrW(1178)
If Selection.Text = \”Г\” Then z = ChrW(1170)
If Selection.Text = \”У\” Then z = ChrW(1262)
If Selection.Text = \”И\” Then z = ChrW(1250)
Selection.Text = z
tt2:
Call Макрос1

End Sub
Sub Макрос3()
\’ \’Найти назад Alt+A
\’чустучу ба кафо
tt0:
Selection.Find.Forward = False
Selection.Find.Text = \”^?\”
If Selection.Find.Execute = False Then Exit Sub
If Selection.Text = \”у\” Then GoTo tt1
If Selection.Text = \”к\” Then GoTo tt1
If Selection.Text = \”г\” Then GoTo tt1
If Selection.Text = \”ч\” Then GoTo tt1
If Selection.Text = \”х\” Then GoTo tt1
If Selection.Text = \”и\” Then
If symbol() = True Then GoTo tt1
End If
GoTo tt0
tt1:
End Sub
Function symbol() As Boolean
\’Определение конечнего символа \”и\”
\’Муайянкунандаи охири \”и\”
symbol = False
Dim ch As String
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
ch = Selection.Text
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
If ch = \” \” Or ch = \”,\” Or ch = \”.\” Or ch = Chr(13) Or ch = \”:\” Or ch = \”)\” Or ch = \”\”\”\” Or ch = \”!\” Or ch = \”?\” Or ch = \”;\” Or ch = \”-\” Or ch = Chr(187) Then
symbol = True
End If
End Function

Public Repl As String \’Рамз барои ивазкуни
Public Char As String \’Рамзи коркадшаванда
Public Symbol As Boolean \’муайянкуни охири \”и\”
Private Sub end_i()
\’муайянкуни охири \”и\”
Symbol = False
Dim ch As String
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
ch = Selection.Text
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
If ch = \” \” Or ch = \”,\” Or ch = \”.\” Or ch = Chr(13) Or ch = \”:\” Or ch = \”)\” Or ch = \”\”\”\” Or ch = \”!\” Or ch = \”?\” Or ch = \”;\” Or ch = \”-\” Or ch = Chr(187) Then
Symbol = True
End If
End Sub
Private Sub Compare()
\’Проверить символ
next_:
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = \”^?\”
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
If Selection.Find.Execute = False Then Exit Sub
Char = Selection.Text
If Char = \”у\” Then Repl = \”ў\”: Exit Sub
If Char = \”к\” Then Repl = \”ќ\”: Exit Sub
If Char = \”г\” Then Repl = \”ѓ\”: Exit Sub
If Char = \”х\” Then Repl = \”њ\”: Exit Sub
If Char = \”ч\” Then Repl = \”љ\”: Exit Sub
If Char = \”и\” Then
Repl = \”ӣ\”
Call end_i
If Symbol = True Then Exit Sub
End If
If Char = \”У\” Then Repl = \”Ў\”: Exit Sub
If Char = \”К\” Then Repl = \”Қ\”: Exit Sub
If Char = \”Г\” Then Repl = \”Ғ\”: Exit Sub
If Char = \”Х\” Then Repl = \”Ҳ\”: Exit Sub
If Char = \”Ч\” Then Repl = \”Ҷ\”: Exit Sub
If Char = \”И\” Then
Repl = \”ӣ\”
Call end_i
If Symbol = True Then Exit Sub
End If
GoTo next_
End Sub
Sub Макрос1()
Attribute Макрос1.VB_Description = \”Макрос записан 08.01.2014 Tester\”
Attribute Макрос1.VB_ProcData.VB_Invoke_Func = \”Normal.NewMacros.Макрос1\”
\’ Макрос1 Макрос
\’ Макрос записан 08.01.2014 Tester
\’\’\’ найти далее
\’ Alt+s
Selection.Find.Forward = True
Call Compare
End Sub
Sub Макрос2()
Attribute Макрос2.VB_Description = \”Макрос записан 08.01.2014 Tester\”
Attribute Макрос2.VB_ProcData.VB_Invoke_Func = \”Normal.NewMacros.Макрос2\”
\’ Макрос2 Макрос
\’ Макрос записан 08.01.2014 Tester
\’\’ заменить
\’ Alt+d
Selection.Find.Replacement.ClearFormatting
Selection.Font.Name = \”Times New Roman Tj\”
With Selection.Find
.Replacement.Text = Repl
.Wrap = wdFindStop
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
End With
Call Compare
End Sub
Sub Макрос3()
Attribute Макрос3.VB_Description = \”Макрос записан 08.01.2014 Tester\”
Attribute Макрос3.VB_ProcData.VB_Invoke_Func = \”Normal.NewMacros.Макрос3\”
\’ Макрос3 Макрос
\’ Макрос записан 08.01.2014 Tester
\’\’ найти назад
\’ Alt+a
Selection.Find.Forward = False
Call Compare
End Sub
Натиҷаи мисоли мо чунин аст:

Р

Хулоса
Талаботи замон барномазонро маҷбур кард, ки барои осону босифат гирифнани натиҷаи дилхоҳ аз МЭҲ барномаҳои махсусеро созанд. Аз қарнҳои гузашта медонем, ки бисёр олимони соҳаи технология барномаҳои гуногунеро ифшо карданд, ки имрӯзҳо миллионҳоро истифодабарандагон барномаҳоро истифода мебаранд. Бисёр барномаҳои ҷолибе ҳаст, ки мо донишҷӯёни соҳаи инноватсия аз он бе мамоният истифода мебарем. Яке инҳо аз забони барномасозии VBA (Visial Basic for Application) мебошад. Чӣ хеле ки дар боло қайд кардем ин забон,забони барномасозии сунъӣ буда, дорои бисёр имкониятҳо мебошад. Яке аз ин имкониятҳо макрос мебошад.Макрос – ин сабти пай дар пайиҳамии амалиётҳои аз тарафи истифодабаранда иҷрошуда мебошад, ки дар муҳити VBA ба таври автоматӣ навишта мешавад. Дар кори курсии худ аз ҳар паҳлӯҳои VBA ва макрос сухан кардам,замимаҳои соддаву фаҳморо бо намунаҳояш мисол овардам. хулоса, худи VBA ин забонест, ки риштаҳои нозуку мураккабро дарост.
Имрӯзҳо тараққиёти илму техника бо суръати кайҳонӣ то рафт ба боло рафта истодааст.Ин моро водор месозад, ки бояд мо аз технологияҳои инноватсионӣ, нано-технологияҳо бархурдор бошем.Ҳамаи ин тараққиёт дарак медиҳад,ки то рафт кори инсоният осонтар мегардад,яъне ба таври автоматӣ, дар муддати кӯтоҳ иҷро карда мешавад.Барои ҳамин ба мо лозим аст, ки илмҳои замонро хуб аз худ намуда, ҳамқадами замона бошем.

Рӯйхати адабиётҳои истифодашуда
1.«Забони барномасозии Visual Basic», Ғаюров Ҳ. Ш, Боқиев Ў. Ш Хуҷанд- 2009с.
2 .VBA для «Чайников» издательство(Hungry Minds™) автор «bу SteveCummings»Стив Камминг

3.«Программирование на VBA Microsoft OFFice 2010» Слепцова Л.Д (Москва-Санк Петербург-Киев 2010)

5. «Программирование на VBA в MS Exsel Методические указания для студентов дневной формы обучения» Хабаровск (издательство ТОГУ -2010).
6. Лексия ва дастурамалҳои сармуаллим Шамсиев А.А


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Уважаемые читатели! Просим вас, оставляя комментарии, уважать друг друга и не злоупотреблять свободой слова.
Администрация сайта будет удалять:
1. Комментарии с грубой и ненормативной лексикой.
2. Оскорбления, угрозы и непристойные высказывания.
3. Высказывания, разжигающие национальную, религиозную и прочую рознь и вражду.
4. Комментарии, содержащие другие нарушения законодательства и прав граждан.
5. Комментарии, рекламирующие и продвигающие другие веб-ресурсы, товары и услуги, а также комментарии, не имеющие отношения к дискуссии.

Пользователи, которые нарушают эти правила грубо или систематически, будут заблокированы.