ការយល់ដឹងអំពីអថេរ និងថេរនៅក្នុង Excel Macros

នៅក្នុងអត្ថបទនេះ អ្នកនឹងរៀនពីអ្វីដែលថេរ និងអថេរនៅក្នុងម៉ាក្រូ ដែលពួកវាអាចប្រើប្រាស់បាន និងអ្វីដែលជាភាពខុសគ្នាសំខាន់រវាងប្រភេទទិន្នន័យផ្សេងៗគ្នា។ វាក៏នឹងត្រូវបានបង្ហាញឱ្យដឹងផងដែរ ពីមូលហេតុដែលចំនួនថេរគឺចាំបាច់ ប្រសិនបើអ្នកគ្រាន់តែអាចសរសេរអថេរ ហើយមិនផ្លាស់ប្តូរវា។

ដូចភាសាសរសេរកម្មវិធីផ្សេងទៀត ទិន្នន័យអាចត្រូវបានរក្សាទុកក្នុងអថេរ ឬថេរ (ទាំងពីរនេះក៏ត្រូវបានគេសំដៅជាញឹកញាប់ថាជាធុងទិន្នន័យ)។ នេះគឺជាភាពខុសគ្នាសំខាន់រវាងគំនិតទាំងនេះ។ អតីតអាចផ្លាស់ប្តូរអាស្រ័យលើអ្វីដែលកើតឡើងនៅក្នុងកម្មវិធី។ នៅក្នុងវេនថេរត្រូវបានកំណត់ម្តងហើយមិនផ្លាស់ប្តូរតម្លៃរបស់វា។

ថេរអាចមានប្រយោជន៍ប្រសិនបើអ្នកត្រូវការប្រើតម្លៃធំដូចគ្នាច្រើនដង។ ជំនួសឱ្យការចម្លងលេខ អ្នកគ្រាន់តែអាចសរសេរឈ្មោះរបស់ថេរ។ ឧទាហរណ៍ អ្នកអាចប្រើ "Pi" ថេរដើម្បីរក្សាទុក Pi ដែលជាតម្លៃថេរ។ វាមានទំហំធំណាស់ ហើយរាល់ពេលដែលវាពិបាកក្នុងការសរសេរ ឬស្វែងរក និងចម្លងវា។ ដូច្នេះហើយ វាគ្រប់គ្រាន់ក្នុងការសរសេរតួអក្សរពីរ ហើយបរិស្ថានប្រើលេខដែលចង់បានដោយស្វ័យប្រវត្តិ។

អ្នកប្រើប្រាស់ Excel ត្រូវការប្រកាសអថេរ ប្រសិនបើគាត់ត្រូវការផ្លាស់ប្តូរតម្លៃដែលរក្សាទុកក្នុងពួកវាម្តងម្កាល។ ឧទាហរណ៍ អ្នកអាចកំណត់អថេរហៅថា sVAT_Rate ដែលនឹងរក្សាទុកអត្រាពន្ធលើតម្លៃបន្ថែមបច្ចុប្បន្នសម្រាប់ផលិតផល។ ប្រសិនបើវាផ្លាស់ប្តូរ អ្នកអាចកែវាបានយ៉ាងឆាប់រហ័ស។ នេះមានប្រយោជន៍ជាពិសេសសម្រាប់អ្នកដែលធ្វើអាជីវកម្មនៅសហរដ្ឋអាមេរិក ដែលទំនិញមួយចំនួនប្រហែលជាមិនមានអាករលើតម្លៃបន្ថែមអ្វីទាំងអស់ (ហើយពន្ធនេះក៏ខុសគ្នាពីរដ្ឋមួយទៅរដ្ឋផងដែរ)។

ប្រភេទទិន្នន័យ

ឧបករណ៍ផ្ទុកទិន្នន័យនីមួយៗអាចជាប្រភេទមួយក្នុងចំណោមប្រភេទជាច្រើន។ នេះគឺជាតារាងដែលពិពណ៌នាអំពីប្រភេទស្តង់ដារនៃព័ត៌មានដែលបានដំណើរការ។ មានពួកគេជាច្រើន ហើយវាហាក់ដូចជាអ្នកចាប់ផ្តើមដំបូងដែលពួកគេនិយាយម្តងទៀត។ ប៉ុន្តែនេះគឺជាអារម្មណ៍បំភាន់។ សូមអានបន្តដើម្បីស្វែងយល់ពីមូលហេតុដែលការបញ្ជាក់ប្រភេទទិន្នន័យត្រឹមត្រូវមានសារៈសំខាន់ណាស់។

វាមិនត្រូវបានណែនាំឱ្យប្រើប្រភេទទិន្នន័យដែលយកទំហំផ្ទុកច្រើននៅក្នុងអង្គចងចាំសម្រាប់លេខតូចទេ។ ឧទាហរណ៍សម្រាប់លេខ 1 វាគ្រប់គ្រាន់ក្នុងការប្រើប្រភេទ Byte ។ វានឹងមានឥទ្ធិពលវិជ្ជមានទៅលើដំណើរការនៃម៉ូឌុលដែលអាចប្រតិបត្តិបាន ជាពិសេសនៅលើកុំព្យូទ័រដែលខ្សោយ។ ប៉ុន្តែវាសំខាន់ណាស់ដែលមិនត្រូវទៅឆ្ងាយពេកនៅទីនេះ។ ប្រសិនបើអ្នកប្រើប្រភេទទិន្នន័យដែលតូចពេក តម្លៃដែលមានទំហំធំប្រហែលជាមិនសមនឹងវាទេ។

ប្រកាសថេរ និងអថេរ

ការប្រើធុងផ្ទុកទិន្នន័យដោយមិនប្រកាសជាមុន វាជាការធ្លាក់ទឹកចិត្តយ៉ាងខ្លាំង បន្ទាប់មកបញ្ហាមួយចំនួនអាចកើតឡើង ដើម្បីចៀសវាងការដែលចាំបាច់ត្រូវសរសេរកូដតូចៗមួយចំនួនជាមួយនឹងការរាប់បញ្ចូលអថេរ ឬថេរ។

ដើម្បីប្រកាសអថេរ សេចក្តីថ្លែងការណ៍ Dim ត្រូវបានប្រើ។ ឧទាហរណ៍ដូចនេះ៖

Dim Variable_Name ជាចំនួនគត់

Variable_Name គឺជាឈ្មោះរបស់អថេរ។ បន្ទាប់មក As operator ត្រូវបានសរសេរ ដែលបង្ហាញពីប្រភេទទិន្នន័យ។ ជំនួសឱ្យខ្សែអក្សរ “Variable_Name” និង “ចំនួនគត់” អ្នកអាចបញ្ចូលឈ្មោះ និងប្រភេទទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នក។

ថេរក៏អាចត្រូវបានប្រកាសផងដែរ ប៉ុន្តែដំបូងអ្នកត្រូវតែបញ្ជាក់តម្លៃរបស់វា។ ជម្រើសមួយក្នុងចំណោមជម្រើសគឺ៖

Const iMaxCount = 5000

ដោយយុត្តិធម៌ ក្នុងករណីខ្លះអ្នកអាចធ្វើបានដោយមិនចាំបាច់ប្រកាសអថេរ ប៉ុន្តែក្នុងករណីនេះ ពួកវានឹងត្រូវបានកំណត់ប្រភេទវ៉ារ្យង់ដោយស្វ័យប្រវត្តិ។ ទោះយ៉ាងណាក៏ដោយ នេះមិនត្រូវបានណែនាំសម្រាប់ហេតុផលខាងក្រោមទេ៖

  1. វ៉ារ្យង់ត្រូវបានដំណើរការយឺតជាង ហើយប្រសិនបើមានអថេរបែបនេះច្រើននោះ ដំណើរការព័ត៌មានអាចថយចុះយ៉ាងខ្លាំងនៅលើកុំព្យូទ័រខ្សោយ។ វាហាក់ដូចជាថាវិនាទីទាំងនោះនឹងសម្រេចចិត្ត? ប៉ុន្តែប្រសិនបើអ្នកត្រូវសរសេរកូដមួយចំនួនធំ ហើយបន្ទាប់មកដំណើរការវានៅលើកុំព្យូទ័រខ្សោយ (ដែលនៅតែត្រូវបានលក់ ដោយសារឈុតការិយាល័យទំនើបត្រូវការ RAM ច្រើន) អ្នកអាចបញ្ឈប់ការងារបានទាំងស្រុង។ មានករណីជាច្រើននៅពេលដែលការសរសេរម៉ាក្រូខុសឆ្គងនាំទៅដល់ការបង្កកសៀវភៅឆ្លាតវៃដែលមាន RAM តិចតួច ហើយមិនត្រូវបានរចនាឡើងដើម្បីបំពេញកិច្ចការស្មុគស្មាញនោះទេ។ 
  2. ការបោះពុម្ពឈ្មោះខុសត្រូវបានអនុញ្ញាត ដែលអាចត្រូវបានរារាំងដោយប្រើសេចក្តីថ្លែងការណ៍ Option Explicit ដែលអនុញ្ញាតឱ្យអ្នកស្វែងរកអថេរដែលមិនបានប្រកាស ប្រសិនបើរកឃើញ។ នេះជាវិធីងាយស្រួលក្នុងការរកឃើញកំហុស ដោយសារការវាយអក្សរតិចតួចបំផុតធ្វើឱ្យអ្នកបកប្រែមិនអាចកំណត់អត្តសញ្ញាណអថេរបាន។ ហើយប្រសិនបើអ្នកបើករបៀបប្រកាសអថេរ អ្នកបកប្រែនឹងមិនអនុញ្ញាតឱ្យអ្នកដំណើរការម៉ាក្រូទេ ប្រសិនបើឧបករណ៍ផ្ទុកទិន្នន័យត្រូវបានរកឃើញដែលមិនត្រូវបានប្រកាសនៅដើមដំបូងនៃម៉ូឌុល។
  3. ជៀសវាងកំហុសដែលបណ្តាលមកពីតម្លៃអថេរមិនត្រូវគ្នានឹងប្រភេទទិន្នន័យ។ ជាធម្មតា ការកំណត់តម្លៃអត្ថបទទៅអថេរចំនួនគត់នឹងបោះកំហុស។ បាទ/ចាស ម្យ៉ាងវិញទៀត ប្រភេទទូទៅត្រូវបានចាត់ចែងដោយគ្មានការប្រកាស ប៉ុន្តែប្រសិនបើពួកគេត្រូវបានប្រកាសជាមុន នោះកំហុសចៃដន្យអាចត្រូវបានជៀសវាង។

ដូច្នេះ ទោះបីជាមានអ្វីគ្រប់យ៉ាងក៏ដោយ វាត្រូវបានផ្ដល់អនុសាសន៍យ៉ាងខ្លាំងដើម្បីប្រកាសអថេរទាំងអស់នៅក្នុងម៉ាក្រូ Excel ។

មានរឿងមួយទៀតដែលត្រូវចងចាំនៅពេលប្រកាសអថេរ។ វាអាចទៅរួចក្នុងការមិនកំណត់តម្លៃណាមួយទៅអថេរនៅពេលប្រកាសវា ប៉ុន្តែក្នុងករណីនេះវាទទួលបានតម្លៃលំនាំដើម។ ឧទាហរណ៍:

  1. បន្ទាត់ត្រូវបានធ្វើឱ្យទទេ។
  2. លេខយកលើតម្លៃ 0 ។
  3. អថេរនៃប្រភេទប៊ូលីនត្រូវបានចាត់ទុកជាដំបូងមិនពិត។
  4. កាលបរិច្ឆេទលំនាំដើមគឺថ្ងៃទី 30 ខែធ្នូ ឆ្នាំ 1899។

ឧទាហរណ៍ អ្នកមិនចាំបាច់កំណត់តម្លៃ 0 ទៅអថេរចំនួនគត់ទេ ប្រសិនបើគ្មានតម្លៃត្រូវបានបញ្ជាក់ពីមុន។ នាងមានលេខនេះរួចហើយ។

ជម្រើសសេចក្តីថ្លែងការណ៍ច្បាស់លាស់

សេចក្តីថ្លែងការណ៍នេះអនុញ្ញាតឱ្យអ្នកប្រកាសអថេរទាំងអស់ដែលត្រូវបានប្រើនៅក្នុងកូដ VBA និងកំណត់វត្តមានរបស់កុងតឺន័រដែលមិនបានប្រកាសមុនពេលកូដដំណើរការ។ ដើម្បីប្រើមុខងារនេះ គ្រាន់តែសរសេរកូដ Option Explicit នៅផ្នែកខាងលើនៃកូដម៉ាក្រូ។

ប្រសិនបើអ្នកត្រូវការបញ្ចូលសេចក្តីថ្លែងការណ៍នេះនៅក្នុងកូដរបស់អ្នករាល់ពេល អ្នកអាចធ្វើដូច្នេះដោយប្រើការកំណត់ពិសេសនៅក្នុងកម្មវិធីនិពន្ធ VBA ។ ដើម្បីបើកជម្រើសនេះ អ្នកត្រូវតែ៖

  1. ទៅកាន់បរិយាកាសអភិវឌ្ឍន៍តាមផ្លូវ – ឧបករណ៍ > ជម្រើស។
  2. នៅក្នុងបង្អួចដែលបើកបន្ទាប់ពីនេះ បើកផ្ទាំងកម្មវិធីនិពន្ធ។
  3. ហើយចុងក្រោយ ធីកប្រអប់នៅជាប់នឹងធាតុ Require Variable Declaration។

នៅពេលបញ្ចប់ជំហានទាំងនេះចុចលើប៊ូតុង "យល់ព្រម" ។ 

នោះហើយជាវា ឥឡូវនេះនៅពេលសរសេរម៉ាក្រូថ្មីនីមួយៗ បន្ទាត់នេះនឹងត្រូវបានបញ្ចូលនៅផ្នែកខាងលើនៃកូដដោយស្វ័យប្រវត្តិ។

វិសាលភាពនៃថេរ និងអថេរ

អថេរ ឬថេរនីមួយៗមានវិសាលភាពកំណត់ប៉ុណ្ណោះ។ វាអាស្រ័យលើកន្លែងដែលអ្នកប្រកាសវា។

ឧបមាថាយើងមានមុខងារមួយ។ Total_Cost()ហើយវាប្រើអថេរ sVAT_អត្រា. អាស្រ័យលើទីតាំងនៅក្នុងម៉ូឌុល វានឹងមានវិសាលភាពខុសគ្នា៖

ជម្រើសច្បាស់លាស់

Dim sVAT_Rate As Single

អនុគមន៍ Total_Cost() ជាទ្វេដង

.

.

.

បញ្ចប់មុខងារ

ប្រសិនបើអថេរមួយត្រូវបានប្រកាសនៅផ្នែកខាងលើនៃម៉ូឌុលខ្លួនវា វារីករាលដាលពេញម៉ូឌុលនោះ។ នោះគឺវាអាចត្រូវបានអានដោយគ្រប់នីតិវិធី។

លើសពីនេះទៅទៀត ប្រសិនបើនីតិវិធីមួយបានផ្លាស់ប្តូរតម្លៃនៃអថេរ នោះលេខបន្ទាប់នឹងអានតម្លៃដែលបានកែតម្រូវនេះផងដែរ។ ប៉ុន្តែនៅក្នុងម៉ូឌុលផ្សេងទៀតអថេរនេះនឹងនៅតែមិនត្រូវបានអាន។

ជម្រើសច្បាស់លាស់

អនុគមន៍ Total_Cost() ជាទ្វេដង

Dim sVAT_Rate As Single

   .

   .

   .

បញ្ចប់មុខងារ

ក្នុងករណីនេះ អថេរត្រូវបានប្រកាសនៅក្នុងនីតិវិធី ហើយអ្នកបកប្រែនឹងបោះកំហុសប្រសិនបើវាត្រូវបានប្រើក្នុងនីតិវិធីផ្សេងទៀត។

ប្រសិនបើអ្នកចង់ឱ្យអថេរត្រូវបានអានដោយម៉ូឌុលផ្សេងទៀត អ្នកត្រូវតែប្រើពាក្យគន្លឹះសាធារណៈជំនួសឱ្យពាក្យគន្លឹះ Dim ។ ស្រដៀងគ្នានេះដែរ អ្នកអាចកំណត់វិសាលភាពនៃអថេរសម្រាប់តែម៉ូឌុលបច្ចុប្បន្ន ដោយប្រើសេចក្តីថ្លែងការណ៍សាធារណៈ ដែលត្រូវបានសរសេរជំនួសឱ្យពាក្យ Dim ។

អ្នកអាចកំណត់វិសាលភាពនៃថេរតាមរបៀបស្រដៀងគ្នា ប៉ុន្តែពាក្យគន្លឹះនៅទីនេះត្រូវបានសរសេររួមគ្នាជាមួយប្រតិបត្តិករ Const ។

នេះគឺជាតារាងដែលមានឧទាហរណ៍ដ៏ល្អមួយអំពីរបៀបដែលវាដំណើរការជាមួយថេរ និងអថេរ។

ជម្រើសច្បាស់លាស់

សាធារណៈ sVAT_Rate As Single

Public Const iMax_Count = 5000

ក្នុងឧទាហរណ៍នេះ អ្នកអាចមើលឃើញពីរបៀបដែលពាក្យគន្លឹះសាធារណៈត្រូវបានប្រើដើម្បីប្រកាសអថេរ និងអ្វីដែលអ្នកត្រូវសរសេរនៅក្នុងកម្មវិធីនិពន្ធ Visual Basic ដើម្បីប្រកាសថេរសាធារណៈ។ វិសាលភាពនៃធុងតម្លៃទាំងនេះអនុវត្តចំពោះម៉ូឌុលទាំងអស់។
ជម្រើសច្បាស់លាស់

ឯកជន sVAT_Rate As Single

Private Const iMax_Count = 5000

នៅទីនេះ អថេរ និងថេរត្រូវបានប្រកាសដោយប្រើពាក្យគន្លឹះឯកជន។ នេះមានន័យថាពួកវាអាចមើលឃើញតែនៅក្នុងម៉ូឌុលបច្ចុប្បន្នប៉ុណ្ណោះ ហើយដំណើរការនៅក្នុងម៉ូឌុលផ្សេងទៀតមិនអាចប្រើពួកវាបានទេ។

ហេតុអ្វីបានជាអថេរ និងអថេរត្រូវការ

ការប្រើប្រាស់ថេរ និងអថេរអនុញ្ញាតឱ្យអ្នកបង្កើនកម្រិតនៃការយល់ដឹងនៃកូដ។ ហើយប្រសិនបើអ្នកចាប់ផ្តើមដំបូងជាទូទៅមិនមានសំណួរអំពីមូលហេតុដែលអថេរត្រូវបានគេត្រូវការនោះ មានភាពមិនច្បាស់លាស់ជាច្រើនទាក់ទងនឹងតម្រូវការសម្រាប់ថេរ។ ហើយសំណួរនេះហាក់ដូចជា, នៅ glance ដំបូង, ឡូជីខលណាស់។ យ៉ាងណាមិញ អ្នកអាចប្រកាសអថេរម្តង ហើយមិនផ្លាស់ប្តូរវាម្តងទៀតឡើយ។

ចម្លើយប្រែទៅជាកន្លែងណាមួយនៅក្នុងយន្តហោះដូចគ្នា ទាក់ទងនឹងការប្រើប្រាស់ប្រភេទទិន្នន័យដែលកាន់កាប់ទំហំធំនៅក្នុងអង្គចងចាំ។ ប្រសិនបើយើងកំពុងដោះស្រាយជាមួយនឹងចំនួនដ៏ច្រើននៃអថេរ យើងអាចផ្លាស់ប្តូរកុងតឺន័រដែលមានស្រាប់ដោយចៃដន្យ។ ប្រសិនបើអ្នកប្រើកំណត់ថាតម្លៃជាក់លាក់មួយនឹងមិនផ្លាស់ប្តូរទេ នោះបរិស្ថាននឹងគ្រប់គ្រងវាដោយស្វ័យប្រវត្តិ។

នេះមានសារៈសំខាន់ជាពិសេសនៅពេលដែលម៉ាក្រូត្រូវបានសរសេរដោយអ្នកសរសេរកម្មវិធីជាច្រើន។ មនុស្សម្នាក់ប្រហែលជាដឹងថាអថេរមួយចំនួនមិនគួរផ្លាស់ប្តូរទេ។ ហើយមួយទៀតមិនមែនទេ។ ប្រសិនបើអ្នកបញ្ជាក់ប្រតិបត្តិករ Const អ្នកអភិវឌ្ឍន៍ផ្សេងទៀតនឹងដឹងថាតម្លៃនេះមិនផ្លាស់ប្តូរទេ។

ឬប្រសិនបើមានថេរដែលមានឈ្មោះមួយ ហើយអថេរមានឈ្មោះផ្សេង ប៉ុន្តែស្រដៀងគ្នា។ អ្នកអភិវឌ្ឍន៍អាចច្រឡំពួកគេ។ ឧទាហរណ៍ អថេរមួយដែលមិនចាំបាច់ផ្លាស់ប្តូរត្រូវបានគេហៅថា Variable11 ហើយមួយទៀតដែលអាចកែសម្រួលបានត្រូវបានគេហៅថា Variable1 ។ មនុស្សម្នាក់អាចដោយស្វ័យប្រវត្តិ នៅពេលសរសេរកូដ រំលងឯកតាបន្ថែមដោយចៃដន្យ ហើយមិនកត់សំគាល់វា។ ជាលទ្ធផលធុងសម្រាប់តម្លៃនឹងត្រូវបានផ្លាស់ប្តូរដែលមិនគួរត្រូវបានប៉ះ។

ឬអ្នកអភិវឌ្ឍន៍ខ្លួនឯងអាចភ្លេចថាអថេរណាដែលគាត់អាចប៉ះ និងអ្វីដែលគាត់មិនអាច។ វាជារឿយៗកើតឡើងនៅពេលដែលកូដត្រូវបានសរសេរអស់រយៈពេលជាច្រើនសប្តាហ៍ ហើយទំហំរបស់វាកាន់តែធំ។ ក្នុងអំឡុងពេលនេះ វាងាយស្រួលណាស់ក្នុងការបំភ្លេចសូម្បីតែអត្ថន័យនេះ ឬអថេរនោះ។

បាទ អ្នក​អាច​ធ្វើ​ជាមួយ​នឹង​មតិ​ក្នុង​ស្ថានភាព​នេះ ប៉ុន្តែ​តើ​វា​មិន​ងាយ​ស្រួល​ក្នុង​ការ​បញ្ជាក់​ពាក្យ Const ទេ?

សន្និដ្ឋាន

អថេរគឺជាធាតុផ្សំសំខាន់នៃការសរសេរកម្មវិធីម៉ាក្រូ ដែលអនុញ្ញាតឱ្យអ្នកអនុវត្តប្រតិបត្តិការស្មុគ្រស្មាញចាប់ពីការគណនារហូតដល់ការជូនដំណឹងដល់អ្នកប្រើប្រាស់អំពីព្រឹត្តិការណ៍ជាក់លាក់ ឬបញ្ជាក់តម្លៃជាក់លាក់នៅក្នុងក្រឡានៃសៀវភៅបញ្ជី។

ថេរគួរតែត្រូវបានប្រើ ប្រសិនបើអ្នកអភិវឌ្ឍន៍ដឹងច្បាស់ថាមាតិកានៃធុងទាំងនេះនឹងមិនផ្លាស់ប្តូរនៅពេលអនាគត។ វាត្រូវបានណែនាំមិនឱ្យប្រើអថេរជំនួសវិញទេ ព្រោះវាអាចមានកំហុសដោយចៃដន្យ។

សូមផ្ដល់យោបល់