Thursday, January 19, 2012

អំពី VBA


VBA (Visual Basic For Application) ជាផ្នែកដ៏សំខាន់មួយសំរាប់អ្នកសិក្សា Ms. Excel 2007 កំរិតខ្ពស់។
តាមរយៈ VBA គេអាចសរសេរកូដដើម្បំបំពេញមុខងារមួយចំនួនដែលកម្មវិធី Ms. Excel 2007 មិនមាន។
          ខាងក្រោមនេះ មិត្តអ្នកអានទាំងអស់នឺងទទួលបានចំណេះមួយចំនួនក្នុងការសរសេរកូដ
ដោយប្រើប្រាស់ VBA។
I.អថេរ និងប្រភេទទិន្នន័យ
          អថេរៈ​ នៅក្នុងការសរសេរកម្មវិធីកុំព្យូទ័រ អថេរគឺជាតំលៃមួយដែលបានរក្សាទុកជាបណ្តោះអាសន្នក្នុង memory របស់កុំព្យូទ័រនៅពេលដែលវាដំណើរការ។
          ការប្រកាសអថេរៈ
          ដើម្បីអាចប្រើប្រាស់អថេរបាន ជាចំាបាច់គេត្រូវប្រកាសវាជាមុន។ ការប្រកាសអថេរត្រូវចាប់ផ្តើម ដោយពាក្យ Dim។ឧទាហរណ៍ៈ
Sub sum
Dim x
Dim something
End sub

ចំណាំៈ អថេរត្រូវមានឈ្មោះ ហើយត្រូវដាក់នៅក្រោយពាក្យ dim។ ឈ្មោះអថេរត្រូវចាប់ផ្តើមដោយតួអក្សរ រឺ សញ្ញា _ (underscore) និងគ្មានសញា្ញចុច (.)។ ការដាក់ឈ្មោះអោយអថេរមិនត្រូវជាន់នឹងពាក្យគន្លឹះដូចមាន ក្នុងតារាងខាងក្រោមទេៈ

ប្រភេទទិន្នន័យ
          ការប្រកាសអថេរខាងលើពុំមានកំនត់ប្រភេទទិន្នន័យទេ។
ជាធម្មតាអថេរដែលបានប្រកាសសុទ្ធតែ មានបំណងរក្សាទុកនូវទិន្នន័យជាប្រភេទផ្សេងៗដូចជាលេខ អក្សរ ថ្ងៃខែ ...។ល។ ហើយកុំព្យូទ័រក៏ត្រូវរៀបចំ
ទំហំនៃការរក្សាទុកទិន្នន័យទាំងនោះនៅក្នុងmemoryរបស់វាទៅតាមប្រភេទទិន្នន័យផងដែរ។
          ខាងក្រោមនេះជាការប្រកាសអថេរដោយបញ្ជាក់នូវប្រភេទទិន្នន័យរបស់វា។
         
          Sub Exercise
          Dim s As string
          Dim x As integer
          Dim y As date
          End sub
          ដើម្បីជំនួយដល់ប្អូនៗក្នុងការកំនត់ប្រភេទទិន្នន័យនៅពេលប្រកាសអថេរ សូមមើលតារាងខាង
ក្រោមៈ
ប្រភេទទិន្នន័យ
តំលៃដែលអាចផ្ទុកបាន
រូបមន្តបំលែង
ផ្សេងៗ
Byte
ពី 0ដល់ 255
Cbyte()
ផ្ទុកតំលៃលេខគ្មានគ្បៀស
Integer
ពី -32768 ដល់ 32767
Cint()
ផ្ទុកតំលៃលេខគ្មានគ្បៀស
Long
ពី–2,147,483,648 ដល់ 2,147,483,647
CLng()
ផ្ទុកតំលៃលេខគ្មានគ្បៀស
Single
ពី-1.401298e–45   ដល់
 -3.402823e38 សំរាប់តំលៃ អវិជ្ជមាន រឺ ពី1.401298e–45   ដល់3.402823e38 សំរាប់តំលៃ វិជ្ជមាន
              
CSng()
ផ្ទុកតំលៃលេខមានគ្បៀស
Double
ពី–1.79769313486231e308 ដល់–4.94065645841247e–324 សំរាប់តំលៃ អវិជ្ជមាន
រឺ
ពី1.79769313486231e308 ដល់4.94065645841247e–324 សំរាប់តំលៃ វិជ្ជមាន
CDbl()
ផ្ទុកតំលៃលេខមានគ្បៀស
String

Cstr()
ផ្ទុកតំលៃអក្សរ
Currency
ពី– 922,337,203,685,477.5808 ដល់ 922,337,203,685,477.5807
Ccur()
ផ្ទុកតំលៃលេខរួបិយប័ណ្ណ
Date

Cdate()
ផ្ទុកតំលៃថ្ងៃខែឆ្នាំ
Variant


ផ្ទុកតំលៃណាក៏បាន
Boolean

Cbool()
ផ្ទុកតំលៃ true និង false

          វិសាលភាព និងដែនកំនត់របស់អថេរ
          វិសាលភាព និងដែនកំនត់របស់អថេរបញ្ជាក់ពីកំរិតដែលអថេរនៅមានតំលៃ រឺគ្មានតំលៃអាច ប្រើប្រាស់បាន។ នៅក្នុង VBA ការប្រកាសអថេរមានពីកំរិតគឺ Local និង Global។
          ការប្រកាសជាលក្ខណៈLocal
          Option Explicit ‘Checking declaration of variables
          Sub Divide
          Dim x as integer
          Dim result as single
          x=10
          result=x/3
          End sub
àការប្រកាសជាលក្ខណៈLocal ត្រូវដាក់នៅក្នុងចន្លោះ sub និង end sub
àតំលៃរបស់អថេរដែលប្រកាសជាLocal អាចប្រើបានតែក្នុងតំបន់ sub និង end sub របស់វាប៉ុណ្ណោះ។
ចំណាំៈ
-Option Explicit ត្រូវបានប្រើដើម្បីត្រួតពិនិត្យថា អថេរបានប្រកាសត្រឹមត្រូវ រឺអត់។ ប្រសិនបើមិនបានប្រកាសទេ នោះកម្មវិធីនឹងបង្ហាញនូវកំហុស។
-អក្សរដែលសរសេរនៅពីក្រោយសញ្ញា ‘ (single quote)គឺសំរាប់ពន្យល់ពីបំណងនៃការសរសេរកូដ ដែលភាសាអង់គ្លេសហៅថា comment។
ការប្រកាសជាលក្ខណៈGlobal
ជាទូទៅ ការប្រកាសជាលក្ខណៈGlobal ត្រូវសិ្ថតនៅក្រៅ sub និង end sub ។ឧទាហរណ៍ ខាងក្រោម
អថេរ LastName ត្រូវបានប្រកាសជា Global
Option Explicit

Dim LastName As String

Sub Exercise()
   
End Sub
ចំណាំៈ អថេរដែលប្រកាសជា Global អាចប្រកាសនៅក្នុង module  ដាច់ដោយឡែកក៏បាន។ ហើយតំលៃរបស់វាអាចប្រើប្រាស់បានជាសាកល។
          កំរិតនៃការចូលប្រើប្រាស់អថេរGlobal
          អថេរGlobal អាចប្រកាសដោយប្រើពាក្យ Private រឺ Public ជំនួសអោយពាក្យ Dim។ហើយការប្រកាស
របៀបនេះក៏បញ្ជាក់ពីកំរិតនៃការចូលទៅប្រើប្រាស់តំលៃរបស់អថេរផងដែរ។
          -ការប្រកាសដោយប្រើពាក្យ Private និង Public:
     Option Explicit

            Private LastName As String
            Public FirstName As String

    Sub Exercise()

    Dim FirstName As String
   
    FirstName = "Dara"
    LastName = "Yuk"
    End Sub
      -ការប្រកាសដោយប្រើពាក្យ Private និង Public នៅក្នុង module:
   Module 1:
   Option Explicit

   Public FullName As String
 Module 2:
   Option Explicit

   Private LastName As String
   Private FirstName As String

   Sub Exercise()
  
   FirstName = "Dara"
   LastName = "Yuk"
   FullName = FirstName & " " & LastName
   
   ActiveCell.FormulaR1C1 = FullName
   End Sub

          អថេរប្រកាសដោយប្រើពាក្យ Private មានតែកូដនៅក្នុង module ដែលប្រកាសវាប៉ុណ្នោះទេទើបអាច
ប្រើវាងបាន។ រីឯ អថេរប្រកាសដោយប្រើពាក្យ Public កូដនៅក្រៅ module ដែលប្រកាសវាក៏អាចប្រើវាបាន ដែរ។
II.VBA Opterators
          -Assignment operator (=)
          ឧទាហរណ៍ៈ
Sub Exercise()

Dim Integral As Integer
Integral = 9578
End      Sub
            -The Line Continuation Operator ( _ )
          ឧទាហរណ៍ៈ
Sub _
Exercise()

End Sub
         - The Parentheses: ()
ឧទាហរណ៍ៈ
(8 + 3) * 5
- The Comma ,
ឧទាហរណ៍ៈ
Sub Exercise()
    Dim FirstName As String, LastName As String, FullName As String
End Sub

- The Colon Operator( :)
ឧទាហរណ៍ៈ
Sub Exercise()
    Dim FirstName As String, LastName As String
   
    FirstName = "Valère" : LastName = "Edou"
   
    ActiveCell.FormulaR1C1 = FirstName
End Sub
- String Concatenation (&)
ឧទាហរណ៍ៈ
Sub Exercise()
    Dim FirstName As String, LastName As String, FullName As String
   
    FirstName = "Valère"
    LastName = "Edou"
    FullName = FirstName & " " & LastName
End Sub
- Carriage Return-Line Feed(vbCrLf) សំរាប់ដកឃ្លាពីពាក្យមួយទៅពាក្យមួយទៀត
ឧទាហរណ៍ៈ
Sub Exercise()
    Dim FirstName As String, LastName As String, FullName As String
    Dim Accouncement As String
   
    FirstName = "Valère"
    LastName = "Edou"
    FullName = FirstName & " " & LastName
    Accouncement = "Student Registration - Student Full Name: " & _
                   vbCrLf & FullName
    ActiveCell.FormulaR1C1 = Accouncement
End Sub
          - Arithmetic Operators: +, -, *, /, \, ^, Mod
-VBA Bit conjunction & disjunction: And, Or, Xor
Bit សំដៅលើតំលៃ ០ និង​ ១។ កុំព្យូទ័របានរក្សាទិន្នន័យទុកក្នុង memory ជាទំរង់ ០ និង ១។
ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ពីការតភា្ជប់ bit ០​ និង ១ ដោយឈ្នាប់ And Xor និង Or
And
0
0
0
And
1
0
1
And
0
0
1
And
1
1
0
Or
0
0
0
Or
1
1
1
Or
0
1
1
Or
1
1
0
Xor
0
0
0
Xor
1
1
1
Xor
0
1
1
Xor
1
0

III.Object សំខាន់ៗរបស់ spreadsheet( rows, columns, cells, workbooks, worksheets)
១-Workbooks: workbooks គឺជាបន្តុំនៃworkbook ពោលគឺវាផ្ទុកនូវ workbook object ជាច្រើន។ Workbooks មានប្រូភើធីមួយឈ្មោះ Item ដែលអាចអោយយើងចូលទៅប្រើប្រាស់ workbook objectបាន។ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ពីការចូលទៅកាន់workbook ទីពីរៈ
Private Sub cmdSelectWorkbook_Click()
    Dim SchoolRecords As Workbook
   
    Set SchoolRecords = Workbooks.Item(2)
End Sub
-ការបង្កើតworkbook: ដើម្បីបង្កើតworkbookគេត្រូវប្រើ Add method របស់ workbooks
Private Sub cmdNewWorkbook_Click()
    Dim SchoolRecords As Workbook
   
    Set SchoolRecords = Workbooks.Add
End Sub
-ការរក្សាទុកworkbook បន្ទាប់ពីធ្វើការរួចហើយដោយប្រើ SaveAs method របស់ workbooks
Private Sub cmdNewWorkbook_Click()
    Dim SchoolRecords As Workbook
   
    Set SchoolRecords = Workbooks.Add
   
    SchoolRecords.SaveAs "SchoolRecords.xlsx"
End Sub
-ការបើក workbook​ ដោយប្រើ Open method របស់ workbooks
Private Sub cmdOpenWorkbook_Click()
    Workbooks.Open "SchoolRecords.xlsx"
End Sub


0 បញ្ចេញមតិ:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More