Bài viết: Khai báo biến và đặt tên biến trong VBA

Liên hệ QC

TranThanhPhong

Ngày mai trời lại sáng!
Thành viên danh dự
Tham gia
16/3/07
Bài viết
2,104
Được thích
19,154
Giới tính
Nam
Biến dữ liệu:
- Mỗi ứng dụng thường xử lý nhiều dữ liệu, ta dùng khái niệm "biến" để lưu trữ dữ liệu trong bộ nhớ máy tính, mỗi biến lưu trữ 1 dữ liệu của chương trình.

- Mặc dù VBA không đòi hỏi, nhưng ta nên định nghĩa rõ ràng từng biến trước khi truy xuất nó để code của chương trình được trong sáng, dễ hiểu, dễ bảo trì và phát triển.

- Định nghĩa 1 biến là :

  • Định nghĩa tên nhận dạng cho biến,
  • Kết hợp kiểu với biến để xác định cấu trúc dữ liệu của biến,
  • Định nghĩa tầm vực truy xuất biến.
- Cú pháp đơn giản của lệnh định nghĩa biến :
[Static|Public|Private|Dim] AVariable As Type

- Tại từng thời điểm, biến chứa 1 giá trị (nội dung) cụ thể. Theo thời gian nội dung của biến sẽ bị thay đổi theo tính chất xử lý của code.

Cú pháp định nghĩa tên biến:

- Cách đặt tên cho 1 biến :

  • Tên biến có thể dài đến 255 ký tự,
  • Ký tự đầu tiên phải là một ký tự chữ (letter),
  • Các ký tự tiếp theo có thể là các ký tự chữ (letter), ký số (digit), dấu gạch dưới,
  • Tên biến không được chứa các ký tự đặc biệt như các ký tự : ^, &, ), (,%, $, #, @, !, ~, +, -, *, …
  • VBA không phân biệt chữ HOA hay chữ thường trong tên biến.

Ví dụ:
Tên biến hợp lệ

  • Base1_ball
  • ThisIsLongButOk

Tên biến không hợp lệ

  • Base.1: vì có dấu chấm
  • Base&1: vì có dấu &
  • 1Base_Ball: ký tự đầu là 1 số

- Nên chọn tên biến ngắn gọn nhưng thể hiện rõ ý nghĩa. Ví dụ: Ta muốn có một biến để lưu hệ số lãi suất ngân hàng (Interest Rate), ta nên dùng tên biến là: InterestRate hoặc Irate chứ không nên dùng tên biến là IR…

- Với ví dụ ở trước, dòng mã sau đây:

IterestRateEarned = Total*InterestRate

sẽ dễ hiểu hơn dòng mã

IE = T*IR

- Khi viết tên biến ta nên viết hoa chữ đầu tiên của một từ có ý nghĩa.

Ví dụ : InterestRate sẽ dễ đọc hơn interestrate hay iNTERestRaTe…

- Không được dùng tên biến trùng với các từ khoá như: Print, Sub, End… (từ khóa là những từ mà ngôn ngữ VBA đã dùng cho những thành phần xác định của ngôn ngữ).


Đặt tên biến theo "ký hiệu Hungarian"


- Một số lập trình viên thường thích bổ sung thêm một tiếp đầu ngữ vào tên biến để nêu rõ kiểu của biến, nhờ đó tăng độ dễ đọc cho chương trình.

Ví dụ:
Mã:
Dim sngInterestRate as Single   'Biến thuộc kiểu Single
Dim intCount as Integer    'Biến thuộc kiểu Integer
Dim strName as String     'Biến thuộc kiểu String

- Qui ước trên gọi là ký hiệu Hungarian (do Charles Simonge, một lập trình viên gốc Hungari của Microsoft) đề xướng. Lưu ý rằng bạn vẫn phải khai báo kiểu cho các biến trên và kiểu phải tương thích với tiếp đầu ngữ đã dùng với tên biến.

Thêm tiếp đầu ngữ (tiền tố) và tiếp vĩ ngữ (hậu tố) cho tên biến (Variable) và hàm (Function)

vba_variables_1.JPG

vba_variables_2.JPG


Lưu ý về biến


  • Trong một ngữ cảnh (trong 1 chương trình con, trong 1 module, cấp toàn cục), không thể dùng hai biến cùng tên (VBA không phân biệt chữ HOA hay chữ thường).
  • Tên biến là phần tên, không kể đến tiếp vĩ ngữ miêu tả kiểu kết hợp.

Ví dụ: Biến a% và biến a! là trùng nhau, VBA sẽ đưa ra thông báo lỗi:
vba_error_dup_name.jpg


  • Sau khi định nghĩa biến, VBA sẽ khởi động trị ban đầu cho biến đó. Ví dụ :
    [*=1]Biến thuộc kiểu Variant có giá trị ngầm định là "Empty" (rỗng), giá trị "Empty" sẽ biến mất khi ta gán cho biến một giá trị cụ thể.
    [*=1]Biến chuỗi có giá trị ngầm định là chuỗI rỗng "" (hai dấu nháy liền nhau).
    [*=1]Biến số có giá trị ngầm định là 0.

  • Không nên tin vào trị ngầm định của biến, phải gán giá trị cho biến trước khi dùng chúng. Một biến tương ứng với một vùng nhớ, do đó khi gán một giá trị cho biến, giá trị cũ của biến sẽ bị mất đi.
Sử dụng hằng gợi nhớ

  • Hằng gợi nhớ (Constant) là khái niệm cho phép người lập trình kết hợp một tên gợi nhớ với một giá trị để khi cần dùng giá trị đó, ta không viết lại chi tiết cụ thể của trị mà chỉ dùng tên gợi nhớ.
  • Cú pháp của phát biểu định nghĩa hằng gợi nhớ :


[Public | Private] Const ConstName [As Type] = Value

Ví dụ :
Mã:
Const PI = 3.1416
Const NumQuarters as Integer = 4
Const Rate = .0725, Period = 12
Const ModName as String = "My Macros"
Public Const AppName as String = "My Application"

  • Lợi ích của việc dùng hằng gợi nhớ :
    • Chương trình sẽ trong sáng, dễ đọc hơn, dẫn đến việc bảo trì, nâng cấp chương trình được thuận tiện hơn.
    • Tiết kiệm được bộ nhớ so với việc dùng biến.
    • Rút ngắn được các câu lệnh quá dài

Xem thêm:

Tiếp đầu ngữ cho tên các đối tượng chuẩn

vba_variables_3.JPG


Tiếp đầu ngữ cho tên các đối tượng cơ sở dữ liệu

vba_variables_4.JPG
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT
Back
Top Bottom