Э. В. Фуфаев, Д. Э. Фуфаев



жүктеу 10,13 Mb.
Pdf просмотр
бет48/93
Дата19.11.2018
өлшемі10,13 Mb.
#21568
түріОқулық
1   ...   44   45   46   47   48   49   50   51   ...   93

Массивті  пайдаланудан  бҧрын  міндетті  тҥрде  Dim  операторының 
көмегімен жариялап, массивте сақталатын мəндер тҥрін көрсету керек. 
Массивтегі  барлық  мəндер  бір  деректер  тҥріне  жату  керек.  Массивті 
жариялау кезінде Variant тҥрін пайдалана отырып, осы шектеуден өтіп 
кетуге  болады.  Мҧндай  жағдайда  массив  элементтері  əртҥрлі  типті 
деректердің мəндерін қабылдай алады.  
Массивті жариялау операторының синтаксисі: 
 
Dim <МассивтіңАты> (<көлем1>, <көлем2>, ...) As <ДеректерТҥрі> 
Жақшада  көрсетілген  шамалар  массив  көлемдерін  белгілейді  - 
индекстер санын жəне əрбір нақты индекстің барынша рҧқсат етілетін 
мəнін  белгілейді.  Бҧл  ретте  массив  элементтерін  индекстеу  өздігінен 
нөлден басталады. Сонымен, жариялым 
DIM ARRAY (9) AS INTEGER 
бҥкіл типтің ауыспалысы болып табылатын 10 элементтің бір өлшемді 
массивін айқындайды, ал жариялым  
DIM ARRAY (4, 9) AS VARIANT 
əмбебап  Variant  типтің  ауыспалылары  болып  табылатын  елу  (5  х  10) 
элементінен ек өлшемді массивті айқындайды. 
Массивті  жариялау  кезінде  индекстің  жоғарғы  шегін  ғана  емес, 
сондай-ақ  төменгі  шегін  көрсетуге  болады,  яғни  нақты  индекс 
массивінің  өзгеру  диапазонын  айқын  белгілеуге  болады,  бҧл  ретте 
төменгі  шегі  кез-келген  бҥтін  сан  болуы  мҥмкін.  Осындай 
анықтаманың синтаксисі: 
Dim <МассивтіңАты> (<мин1> То <макс1>, ) As <ДеректерТҥрі> 
Келтірілген  мысалдарда  тіркелген  көлемнің  массивтері  туралы 
айтылды, олардың элементтерінің саны массивті сипаттау кезінде Dim 
операторында  айқын  көрсетілген.  Мҧндай  массивтер  статикалық  деп 
аталады.  VBA-да  көлемдері  сипаттау  кезінде  тіркелмейтін, 
динамикалық  массивтерді  де  пайдалануға  болады.  Динамикалық 
массивтің  көлемін  анықтау  тікелей  бағдарламаны  орындау  кезінде 
жасалуы мҥмкін.  
Динамикалық  массивті  анықтау  кезінде  Dim  операторында 
массивтің  атынан  кейін  бос  жақшалар  жəне  ауыспалы  тҥрінің 
сипаттамасы  тҧру  керек.  Индекстер  саны  мен  оларды  өзгерту 
диапазоны  белгіленбейді.  Массивті  пайдаланудан  бҧрын  ReDim 
операторын  енгізу  керек,  ол  динамикалық  массив  индекстерінің 
көлемдігін жəне өзгеру диапазондарын белгілейді.  
Динамикалық  массивтің  көлемдерін  анықтау  жəне  жариялау 
синтаксисі:  
Dim <МассивтіңАты> () As <ДеректерТҥрі> 
ReDim <МассивтіңАты> (<көлем1>, <көлем2>, ...) 


Динамикалық  массивті  жариялау  жəне  көлемдерін  анықтау 
мысалын,  содан  кейін  осы  массивтің  одан  арғы  көлемінің  өзгеру 
мысалын келтірейік: 
Dim dArray () As Variant 
ReDim dArray (1, 2) 
dArray (0, 0) = 2 
dArray (0, 
1
) = 3 
k = dArray (0, 0) + dArray (0, 1) 
ReDim dArray (k) 
dArray (0) = (Жол1) 
Осы мысалда dArray массиві алдымен алты элементтен тҧратын екі 
өлшемді массив ретінде айқындалады, содан кейін бір өлшемді массив 
ретінде  қайта  айқындалады,  бҧл  ретте  индекстің  жоғарғы  шегі  k 
ауыспалының мəнімен белгіленеді. 
8.4. 
Ауыспалылар мен рәсімдердің әрекет ету аясы 
VBA-дағы  бардық  рəсімдердің,  қызметтердің,  ауыспалылар  мен 
константалардың  өз  əрекет  ету  аясы  бар.  Бҧл  барлығының 
бағдарламалық  кодтың  белгіленген  жерінде  -  сипатталған  жерінде 
пайдаланылуы  мҥмкін  екенін  білдіреді.  Мысалы,  егер  А  ауыспалы 
Procl  рəсімінің  деңгейінде  Dim  операторының  көмегімен  сипатталған 
болса, онда дəл осы рəсім оның əрекет ету аясы болып табылады. Егер 
басқа  Proc2  рəсімі  болса,  онда  осы  ауыспалыны  жариялымсыз 
пайдалануға болмайды.  
Ауыспалылардың 
әрекет 
ету 
аясы. 
Ауыспалының 
бағдарламаның  қай  жерінде  жəне  қалай  сипатталғаны,  жадқа 
қаншалықты  ҧзақ  ―өмір  сҥретіні‖  жəне  тағайындалған  мəнін 
сақтайтыны  оның  əрекет  ету  аясы  айқындайды.  Ауыспалылардың 
əрекет ету аясын айқындау кезінде ҥш тҥрлі деңгей бар: рəсім деңгейі, 
модуль деңгейі жəне жоба деңгейі.  
Рәсім деңгейіндегі ауыспалыны айқындау ҥшін, оның сипаттамасы 
осы рəсімнің деңгейіне орналасады.  
Модуль  деңгейіндегі  рəсімді  айқындау  ҥшін  жəне  оны  осы 
модульдің  барлық  рəсімінде  ортақ  пайдалану  ҥшін  ең  қолжетімді  ету 
ҥшін  оның  сипаттамасын  модульдерді  жариялау  секциясына  -  қандай 
да  бір  рəсімдердің  немесе  қызметтердің  мəтінінің  алдына 
орналастырған жөн. Бҧл ретте əрекет ету аясының айқын сипаттамасы 
пайдаланылуы  мҥмкін.  Бҧл  жағдайда  «Dim»  өзекті  сөзінің  орнына, 
«Private» өзекті сөзі пайдаланылады.  
Жоба деңгейіндегі ауыспалыны сипаттау ҥшін, оның сипаттамасын 
жоба  модульдерінің  біріндегі  жариялым  секциясына  орналастыру 
керек; бҧл ретте міндетті тҥрде «Public» өзекті сөзі пайдаланылу керек. 


Осындай  тəсілмен  сипатталған  ауыспалылар  жобаның  кез-келген 
модулінде пайдаланылуы мҥмкін.  
Жоғарыда  айтылғанның  барлығы  константалар  мен  массивтердің 
əрекет ету аясының сипаттамасы мен анықтамасына жатады.  
Ауыспалылар  ҥшін  оларды  сипаттайтын,  деңгейін  өзгертпейтін, 
бірақ  рəсім  деңгейінде  сипатталған  ауыспалының  мəнін  жҧмысы 
аяқталғаннан кейін де сақтау мҥмкіндігін беретін тағы бір тəсіл бар. 
Ол  ҥшін  статикалық  ауыспалы  ретінде  айқындалатын  Static 
ауыспалыны  пайдаланған  жөн.  Осындай  ауыспалы  жадта  бөлінген 
орынды жəне сипатталған əрі пайдаланылған рəсім аяқталғаннан кейін 
де өз мəнін сақтайды.  
Бҧған  қарамастан  статикалық  ауыспалы  басқа  рəсімдерде 
пайдаланыла  алмайды.  Оның  əрекет  ету  аясы  емес,  тек  өмір  сҥру 
уақыты  ғана  өзгереді.  Егер  статикалық  ауыспалы  сипатталған  рəсім 
қайта шақырылса, онда бҧл ауыспалы бҧдан бҧрынғы шақыру кезінде 
рəсімнің  жҧмысы  аяқталу  сəтінде  ие  болған  мəнін  сақтайды.  Әдетті 
(статикалық емес) ауыспалылар қайтадан инициалданады жəне рəсімге 
кіру кезінде бос мəндер алады.  
Рәсімдер  мен  қызметтердің  әрекет  ету  ӛрістері.  Рəсімдер  мен 
қызметтердің  əрекет ету аясының тек екі деңгейі бар: модуль деңгейі 
жəне  жоба  деңгейі.  Өздігінен  жоба  деңгейі  пайдаланылады.  Рəсім 
немесе  қызмет  жобасында  кез-келген  басқа  рəсім  немесе  қызмет 
шақырылуы  мҥмкі.  Жоба  деңгейіндегі  рəсімдер  мен  қызметтерді 
сипаттау  кезінде  міндетті  емес  «Public»  өзекті  сөзі  пайдаланылуы 
мҥмкін. Осы сөздің болуы немесе болмауы рəсімге əсер етпейді.  
Егер  тек  модуль  деңгейінде  пайдаланылатын  рəсімді  сипаттау 
қажет  болса,  онда  ол  ҥшін  «Private»  өзекті  сөзі  қолданылады.  Алайда 
рəсімнің  осындай  сипаттамасы  рəсім  ҥшін  əрекет  ету  аясын 
қысқартады  жəне  жеке-дара  пайдаланылуына  тыйым  салады. Оны тек 
басқа рəсімнен шақыруға болады.  
Рəсімдерді немесе қызметтерді сипаттау кезінде «Static» өзекті сөзі 
пайдаланылуы  мҥмкін.  Ол  рəсімнің  əрекет  ету  аясына  əсер  етпейді, 
бірақ  осы  рəсімнің  немесе  қызметтің  ішінде  сипатталған  барлық 
ауыспалыға  əсер  етеді.  Бҧл  жағдайда  барлық  жергілікті  ауыспалы  
Static    мəртебесіне  ие  болады  жəне  рəсім  аяқталғаннан  кейін  жадта 
сақталады; қайтадан шақыру кезінде бҧрынғы мəндері сақталады.  
Келесі мысалды қарастырайық. 
Public A1 As String 
Private A2 As Integer 
Dim A3 As Single 
Sub Proc1() 


жүктеу 10,13 Mb.

Достарыңызбен бөлісу:
1   ...   44   45   46   47   48   49   50   51   ...   93




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау