Application အတွက် Visual Basic ရှိ Array များ

အပလီကေးရှင်းအတွက် Visual Basic ရှိ Arrays များသည် အမျိုးအစားတူ ဆက်စပ်ကိန်းရှင်အစုံများကို သိမ်းဆည်းထားလေ့ရှိသော တည်ဆောက်ပုံများဖြစ်သည်။ Array ထည့်သွင်းမှုများကို ၎င်းတို့၏ ဂဏန်းအညွှန်းများဖြင့် ဝင်ရောက်ကြည့်ရှုသည်။

ဥပမာအားဖြင့်၊ နောက်ပိုင်းတွင် VBA ကုဒ်တွင် အသုံးပြုရန်အတွက် အမည်များကို သိမ်းဆည်းရန် လိုအပ်သော လူ 20 ပါသော အဖွဲ့တစ်ဖွဲ့ရှိသည်။ နာမည်တစ်ခုစီကို ထိန်းထားရန် ကိန်းရှင် 20 ကို ရိုးရှင်းစွာကြေငြာနိုင်သည်-

Dim Team_Member1 As String As Dim Team_Member2 As String ... Dim Team_Member20 က ညှို့

သို့သော် သင်သည် ပိုမိုရိုးရှင်းပြီး ပိုမိုဖွဲ့စည်းထားသောနည်းလမ်းကို အသုံးပြု၍ ရနိုင်သည် - ကဲ့သို့သော ကိန်းရှင် 20 မျိုးရှိသည့် အခင်းအကျင်းတွင် အဖွဲ့အဖွဲ့ဝင်အမည်များစာရင်းကို သိမ်းဆည်းပါ။ ကြိုး:

Dim Team_Members(1 မှ 20) သည် စာကြောင်းအဖြစ်

အထက်ဖော်ပြပါ စာကြောင်းတွင်၊ ကျွန်ုပ်တို့သည် array တစ်ခုကို ကြေညာထားသည်။ ယခု ဤကဲ့သို့ ၎င်း၏ ဒြပ်စင်တစ်ခုစီအတွက် တန်ဖိုးတစ်ခုကို ရေးကြပါစို့။

Team_Members(1) = "John Smith"

သီးခြား variables များကိုအသုံးပြုခြင်းနှင့် နှိုင်းယှဉ်ပါက array တွင်ဒေတာသိမ်းဆည်းခြင်း၏နောက်ထပ်အားသာချက်တစ်ခုမှာ array ၏ဒြပ်စင်တစ်ခုစီတွင်တူညီသောလုပ်ဆောင်ချက်ကိုလုပ်ဆောင်ရန်လိုအပ်လာသောအခါတွင်ထင်ရှားလာပါသည်။ အဖွဲ့သားများ၏အမည်များကို သီးခြား variable 20 တွင် သိမ်းဆည်းထားပါက၊ ၎င်းတို့တစ်ခုစီတွင် တူညီသောလုပ်ဆောင်မှုတစ်ခုလုပ်ဆောင်ရန် တစ်ကြိမ်စီတွင် ကုဒ်စာကြောင်း 20 ကို ရေးရမည်ဖြစ်သည်။ သို့သော်၊ အမည်များကို array တွင်သိမ်းဆည်းထားပါက၊ ရိုးရှင်းသော loop ကို အသုံးပြု၍ ၎င်းတို့တစ်ခုစီနှင့် လိုချင်သောလုပ်ဆောင်ချက်ကို သင်လုပ်ဆောင်နိုင်သည်။

၎င်းအလုပ်လုပ်ပုံအား ကော်လံဆဲလ်များတွင် အသင်းဝင်တစ်ဦးစီ၏အမည်များကို ဆက်တိုက်ရိုက်ထုတ်သည့် ကုဒ်နမူနာဖြင့် အောက်တွင် သရုပ်ပြထားသည်။ A တက်ကြွသော Excel အလုပ်စာရွက်။

i အတွက် = 1 မှ 20 Cells(i,1)။တန်ဖိုး = Team_Members(i) နောက်တစ်ခု i

အမည် 20 ကိုသိမ်းဆည်းသည့် array တစ်ခုနှင့်အလုပ်လုပ်ခြင်းသည် သီးခြား variable 20 ကိုအသုံးပြုခြင်းထက်ပိုမိုခက်ခဲပြီးပိုမိုတိကျပါသည်။ ဒါပေမယ့် ဒီနာမည်တွေက 20 မဟုတ်ပေမယ့် 1000 ဆိုရင်ကော။ ထို့အပြင်၊ မျိုးရိုးအမည်များနှင့် မျိုးရိုးအမည်များကို သီးခြားထားရှိရန် လိုအပ်ပါက၊ array တစ်ခု၏အကူအညီမပါဘဲ VBA ကုဒ်ရှိ ဒေတာပမာဏကို ကိုင်တွယ်ရန် မကြာမီ လုံးဝမဖြစ်နိုင်တော့ကြောင်း ရှင်းပါသည်။

Excel Visual Basic ရှိ Multidimensional Array များ

အထက်တွင်ဖော်ပြထားသော Visual Basic arrays များကို one-dimensional ဟုယူဆပါသည်။ ဆိုလိုသည်မှာ ၎င်းတို့သည် ရိုးရှင်းသော အမည်စာရင်းကို သိမ်းဆည်းထားခြင်းဖြစ်သည်။ သို့သော်၊ array များသည် အတိုင်းအတာများစွာရှိနိုင်သည်။ ဥပမာအားဖြင့်၊ နှစ်ဖက်မြင် array တစ်ခုကို တန်ဖိုးများ grid တစ်ခုနှင့် နှိုင်းယှဉ်နိုင်သည်။

မတူညီသောအသင်း 5 ခုအတွက် ဇန်နဝါရီအတွက် နေ့စဉ်အရောင်းကိန်းဂဏန်းများကို သိမ်းဆည်းလိုသည်ဟု ဆိုကြပါစို့။ ၎င်းသည် ၃၁ ရက်အတွက် မက်ထရစ် ၅ စုံပါဝင်သော နှစ်ဖက်မြင် အခင်းအကျင်းတစ်ခု လိုအပ်ပါမည်။ ဤကဲ့သို့သော array တစ်ခုကို ကြေညာကြပါစို့။

Dim Jan_Sales_Figures(1 မှ 31၊ 1 မှ 5) ကို ငွေကြေးအဖြစ်

array အစိတ်အပိုင်းများကိုဝင်ရောက်ရန် Jan_Sales_Figuresလ၏နေ့ရက်နှင့် အမိန့်နံပါတ်ကို ညွှန်ပြသော အညွှန်းနှစ်ခုကို သင်အသုံးပြုရန် လိုအပ်သည်။ ဥပမာ၊ အရောင်းကိန်းဂဏန်းများ ပါဝင်သော ဒြပ်စင်တစ်ခု၏ လိပ်စာ ၄-အင်း အသင်းများအတွက် ၁၈ ကြိမ်မြောက် ဇန်န၀ါရီလတွင် ဤကဲ့သို့ ရေးထားသည်။

Jan_Sales_Figures(15၊ 2)

ထိုနည်းအတူ၊ သင်သည် အတိုင်းအတာ 3 သို့မဟုတ် ထို့ထက်ပိုသော အတိုင်းအတာများပါရှိသော array တစ်ခုကို ကြေညာနိုင်သည် - array ကြေငြာတွင် အပိုအတိုင်းအတာများထည့်ရုံဖြင့် ဤ array ၏ဒြပ်စင်များကိုရည်ညွှန်းရန် အပိုကိန်းညွှန်းများကို အသုံးပြုပါ။

Excel Visual Basic တွင် Array များကိုကြေငြာခြင်း။

ဤဆောင်းပါးတွင် အစောပိုင်းတွင်၊ ကျွန်ုပ်တို့သည် VBA တွင် ခင်းကျင်းပြသခြင်းဆိုင်ရာ နမူနာအများအပြားကို ကြည့်ရှုခဲ့ပြီးဖြစ်သော်လည်း၊ ဤအကြောင်းအရာသည် ပိုမိုနီးကပ်စွာကြည့်ရှုရန် ထိုက်တန်ပါသည်။ ပြထားသည့်အတိုင်း၊ တစ်ဖက်မြင် array ကို ဤကဲ့သို့ ကြေငြာနိုင်သည်-

Dim Team_Members(1 မှ 20) သည် စာကြောင်းအဖြစ်

ထိုသို့သောကြေငြာချက်သည် array ကို VBA compiler ကိုပြောပြသည်။ အသင်း_အဖွဲ့ဝင်များ အညွှန်းကိန်း 20 မှ 1 တွင်ဝင်ရောက်နိုင်သော variable 20 ပါ၀င်ပါသည်။ သို့သော်၊ ကျွန်ုပ်တို့၏ array variable များကို 0 မှ 19 အထိရေတွက်ရန်စဉ်းစားနိုင်ပြီး၊ array ကိုဤကဲ့သို့ကြေငြာသင့်သည်-

Dim Team_Members(0 မှ 19) သည် စာကြောင်းအဖြစ်

အမှန်မှာ၊ ပုံမှန်အားဖြင့်၊ array အစိတ်အပိုင်းများ၏ နံပါတ်များကို 0 မှ စတင်ပြီး array ကြေငြာတွင်၊ ဤကဲ့သို့သော ကနဦးအညွှန်းကိန်းကို လုံးဝသတ်မှတ်ထားမည်မဟုတ်ပါ-

Dim Team_Members(19) စာတန်းအဖြစ်

VBA compiler သည် 20 မှ 0 အတွင်း အညွှန်းများပါသော ဒြပ်စင် 19 ၏ array တစ်ခုအား ကြေငြာခြင်းကဲ့သို့ entry ကို ဆက်ဆံမည်ဖြစ်ပါသည်။

Multidimensional Visual Basic arrays များကိုကြေငြာသောအခါ အလားတူစည်းမျဉ်းများ သက်ရောက်သည်။ ဥပမာများအနက်မှ ပြထားပြီးဖြစ်သည့်အတိုင်း နှစ်ဘက်မြင် ခင်းကျင်းတစ်ခုကို ကြေညာသောအခါ၊ ၎င်း၏အတိုင်းအတာ၏ အညွှန်းကိန်းများကို ကော်မာဖြင့် ပိုင်းခြားထားသည်-

Dim Jan_Sales_Figures(1 မှ 31၊ 1 မှ 5) ကို ငွေကြေးအဖြစ်

သို့ရာတွင်၊ အကယ်၍ သင်သည် array ၏အတိုင်းအတာနှစ်ခုစလုံးအတွက် စတင်ညွှန်းကိန်းတစ်ခုကို မသတ်မှတ်ဘဲ ၎င်းကို ဤကဲ့သို့ကြေညာပါက-

Dim Jan_Sales_Figures(31၊ 5) ငွေကြေးအဖြစ်

ထို့နောက် ဤထည့်သွင်းမှုကို 32 မှ 0 အတွင်း အညွှန်းများပါရှိသော ဒြပ်စင် 31 ခုပါရှိသော ပထမအတိုင်းအတာကို နှစ်ဖက်မြင် array တစ်ခုအဖြစ် သတ်မှတ်မည်ဖြစ်ပြီး၊ array ၏ ဒုတိယအတိုင်းအတာသည် 6 မှ 0 အထိ အညွှန်းများပါရှိသော ဒြပ်စင် 5 ခုပါရှိသည်။

Dynamic array များ

အထက်ဖော်ပြပါ ဥပမာများရှိ array များအားလုံးတွင် အတိုင်းအတာတစ်ခု သတ်မှတ်ထားသော ကိန်းဂဏန်းတစ်ခုရှိသည်။ သို့သော်လည်း၊ ကိစ္စများစွာတွင် ကျွန်ုပ်တို့၏ array သည် မည်သည့်အရွယ်အစားဖြစ်သင့်သည်ကို ကြိုမသိပါ။ ကျွန်ုပ်တို့၏လုပ်ငန်းတာဝန်အတွက် လိုအပ်သည်ထက်ပိုကြီးမည့် အရွယ်အစားမှာ ဧရာမခင်းကျင်းတစ်ခုကို ကြေညာခြင်းဖြင့် အခြေအနေမှ ရုန်းထွက်နိုင်မည်ဖြစ်သည်။ သို့သော် ထိုသို့သောဖြေရှင်းချက်သည် အပိုမှတ်ဉာဏ်များစွာ လိုအပ်မည်ဖြစ်ပြီး ပရိုဂရမ်ကို နှေးကွေးစေနိုင်သည်။ ပိုကောင်းတဲ့အဖြေတစ်ခုရှိပါတယ်။ ကျွန်ုပ်တို့သည် ဒိုင်းနမစ်အခင်းအကျင်းကို သုံးနိုင်သည် - ၎င်းသည် မက်ခရိုတစ်ခုလုပ်ဆောင်နေစဉ်အတွင်း အရွယ်အစားကို သတ်မှတ်နိုင်ပြီး အကြိမ်အရေအတွက်ကို ပြောင်းလဲနိုင်သည့် array တစ်ခုဖြစ်သည်။

ဒိုင်နမစ် array ကို ဤကဲ့သို့သော ကွင်းပိတ်အလွတ်ဖြင့် ကြေငြာသည်-

Dim Team_Members() စာကြောင်းအဖြစ်

ထို့နောက်၊ သင်သည် စကားရပ်ကို အသုံးပြု၍ code execution လုပ်နေစဉ်အတွင်း array ၏ dimension ကိုကြေငြာရန် လိုအပ်ပါသည်။ ReDim:

ReDim Team_Members (1 မှ 20)

ကုဒ်ကိုလုပ်ဆောင်နေစဉ်တွင် သင်သည် array ၏အရွယ်အစားကို ထပ်မံပြောင်းလဲရန် လိုအပ်ပါက၊ ထို့နောက် သင်သည် ReDim expression ကို ထပ်မံအသုံးပြုနိုင်သည်-

အကယ်၍ Team_Size > 20 ထို့နောက် ReDim Team_Members(1 To Team_Size) ပြီးဆုံးပါက၊

ဤနည်းဖြင့် ရွေ့လျားနေသော array တစ်ခုကို အရွယ်အစားပြောင်းလဲခြင်းသည် array တွင်သိမ်းဆည်းထားသော တန်ဖိုးများအားလုံးကို ဆုံးရှုံးစေမည်ကို သတိပြုပါ။ array တွင်ရှိပြီးသား data များကိုသိမ်းဆည်းရန်အတွက် keyword ကိုအသုံးပြုရန်လိုအပ်သည်။ ထိနျးသိမျးအောက်မှာပြထားတဲ့အတိုင်း:

အကယ်၍ Team_Size > 20 ထို့နောက် ReDim သည် Team_Members (1 To Team_Size) ကို သိမ်းထားပါက

ကံမကောင်းစွာပဲ အဓိကစကားလုံး ထိနျးသိမျး array dimension တစ်ခု၏ အပေါ်ဘက်ဘောင်ကို ပြောင်းလဲရန်အတွက်သာ အသုံးပြုနိုင်သည်။ array တစ်ခု၏ အောက်ဘောင်ကို ဤနည်းဖြင့် ပြောင်းလဲ၍မရပါ။ ထို့အပြင်၊ အခင်းအကျင်းတွင် အတိုင်းအတာများစွာရှိလျှင် သော့ချက်စာလုံးကို အသုံးပြုပါ။ ထိနျးသိမျးArray ၏ နောက်ဆုံးအတိုင်းအတာကိုသာ အရွယ်အစားပြောင်းလဲနိုင်သည်။

တစ်ဦးစာပြန်ရန် Leave