Khai báo trong VB

Một phần của tài liệu vba1 (Trang 33 - 38)

Trong VB, muốn sử dụng một biến có thể không cần khai báo, tuy nhiên cách làm này chỉ nên dùng khi viết các chương trình nhỏ, còn đối với các chương trình lớn, có nhiều mô-đun, thì nên bắt buộc khai báo biến trước khi sử dụng (theo cách thiết lập ở mục 2 của chương này).

Khai báo biến, về thực chất, chính là việc tạo mã lệnh (lập trình) cho nên các đoạn mã lệnh khai báo biến có thểđặt ở bất cứ thành phần nào trong dự án VBA (mô-đun chuẩn, mô-đun lớp, và Userform). Tùy theo nhu cầu sử dụng biến mà người ta giới hạn phạm vi sử dụng của biến đó sao cho việc lập trình được thuận tiện nhất dựa trên những nguyên tắc sau:

Ø

ØKhi biến khai báo trong chương trình con nào thì phạm vi sử dụng của nó được giới hạn trong chính chương trình con đó. Biến loại này được gọi là biến cục bộ.

Hình 3-10: Phạm vi sử dụng của biến được khai báo trong chương trình con Ø

ØSử dụng từ khóa Public để xác định phạm vi sử dụng biến là trong toàn bộ dự án, nghĩa là từ bất cứ nơi đâu trong dự án (mô-đun chuẩn, mô-đun lớp, và Userform) đều có thể sử dụng biến này. Biến được khai báo với từ khóa Public thường được gọi là biến toàn cục. Trong mô-đun nào đó, nếu một biến được khai báo với từ khóa Dim, thì mặc định, biến đó là biến cục bộ, nghĩa là tương đương với việc sử dụng từ khóa Private.

Chú ý: không sử dụng các từ khoá Public,Private hay Friend cho khai báo dữ liệu nằm bên trong chương trình con.

Hình 3-12: Phạm vi sử dụng biến toàn cục

Ở mức độ rộng hơn, có thể coi biến như một khối dữ liệu của chương trình và mức độ toàn cục được chia làm hai loại như sau:

ƒ

ƒ Toàn cục ở mức ứng dụng: Trong trường hợp ứng dụng gồm nhiều dự án (multi- projects), nếu trong một mô-đun không có khai báo lựa chọn Option Private Module thì tất cả các thành phần dữ liệu hay chương trình được khai báo Public trong mô-đun đó có phạm vi hoạt động toàn bộ ứng dụng – nghĩa là chúng còn có thểđược tham chiếu từ những dự án khác trong ứng dụng.

ƒ

ƒ Toàn cục ở mức dự án: Trong trường hợp ứng dụng gồm nhiều dự án (multi-projects), nếu trong một mô-đun có khai báo lựa chọn Option Private Module thì tất cả các thành phần dữ liệu hay chương trình được khai báo Public trong mô-đun đó chỉ có phạm vi hoạt động trong nội bộ dự án chứa mô-đun mà không thểđược tham chiếu từ những dự án khác trong ứng dụng.

Hình 3-13: Khai báo tùy chọn phạm vi biến ở mức dự án. Ø

ØSử dụng từ khóa Private để xác định phạm vi hoạt động của biến là trong nội bộ của mô-đun đó, tất cả các chương trình con hay bất cứ thành phần nào của mô-đun này đều có thể sử dụng biến loại này nhưng chúng không thể truy cập được từ những mô-đun hay Userform khác trong dự án.

Hình 3-14: Phạm vi sử dụng của biến tương ứng với từ khóa Public và Private. Khi khai báo kiểu dữ liệu người dùng tự định nghĩa hoặc các chương trình con trong một mô-đun, nếu không chỉ rõ phạm vi hoạt động thì pham vi hoạt động mặc định là Public. Để tránh các nhầm lẫn do không nhớ phạm vi hoạt động mặc định, người dùng nên chỉ rõ phạm vi hoạt động của chương trình hay dữ liệu ngay khi khai báo.

Ø

ØNgoài ra, trong các mô-đun lớp (Class Module) hoặc mô-đun lệnh của UserForm còn có thể sử dụng từ khóa Friend để xác định phạm vi hoạt động của một chương trình con (phương thức). Khi sử dụng từ khóa này, chương trình con có thểđược truy xuất từ mọi nơi trong nội bộ dự án (Project) chứa nó nhưng không thểđược truy xuất trong những dự án khác của ứng dụng (khác với khi dùng từ khóa Public – chương trình con có thểđược truy xuất từ mọi nơi của ứng dụng).

Các khai báo dữ liệu với các từ khoá trên được thực hiện trong phần General của một mô- đun. Các dữ liệu đó còn được gọi là dữ liệu cấp mô-đun (module level).

Trong mỗi mô-đun, phần đầu tiên (của phần viết mã lệnh) được gọi là phần General của mô-đun đó. Theo quy ước, các thiết lập cho mô-đun được đặt ở đây và VBA IDE sẽ tự động phân cách phần này (hình 3-15). Không có giới hạn về kích thước cho phần này.

Hình 3-15: Phần General trong mô-đun

6.1. Khai báo hng s

Hằng số là một loại biến đặc biệt mà giá trị của nó được xác định ngay lúc khai báo và luôn không thay đổi. Ta nên dùng cách này cho những hằng số hay phải dùng lặp lại trong chương trình, ví dụ như hằng sốπ = 3.14159. Sau khi khai báo hằng số này:

ta luôn có thể sử dụng giá trị 3.14159 bất cứ chỗ nào trong chương trình với cái tên dễ nhớ hơn là

Pi.

Cú pháp:

[Public/ Private] Const <tên_hằng>=<giá_trị_hằng_số>

Các từ khoá Public hay Private xác định phạm vi hiệu lực của hằng số, với từ khoá Public, hằng số này có thể sử dụng ở bất cứ đâu trong ứng dụng, còn với từ khoá Private thì hằng số này chỉ có thể sử dụng bên trong mô-đun nơi khai báo hằng sốđó. Ý nghĩa của hai từ khóa này cũng không thay đổi cho tất cả các phần khác mà có sử dụng chúng.

6.2. Khai báo biến

Cú pháp:

Dim <tên_biến> as <Kiểu_dữ_liệu>

Khi dùng từ khóa Public hay Private nhằm xác định phạm vi hiệu lực của biến thay cho từ khóa Dim trong khai báo biến thì cú pháp như sau:

Public <tên_biến> as <Kiểu_dữ_liệu>

Hay:

Private <tên_biến> as <Kiểu_dữ_liệu> 6.3. Khai báo kiu t định nghĩa

Trong VB có thể khai báo các kiểu dữ liệu theo nhu cầu của người sử dụng. Cú pháp khai báo như sau:

Type <Tên_ kiểu>

<tên_trường_1> as <Kiểu_dữ_liệu> <tên_trường_2> as <Kiểu_dữ_liệu>

<tên_trường_n> as <Kiểu_dữ_liệu> End Type

Sau khi khai báo kiểu tựđịnh nghĩa, người dùng có thể sử dụng các biến có kiểu tựđịnh nghĩa bằng cách khai báo như các biến thông thường, với <Kiểu_dữ_liệu> được thay bằng <Tên_kiểu>. Để truy cập tới một trường của biến kiểu bản ghi, dùng toán tử (.) hoặc dùng cặp từ khóa With… End With.

Các từ khoá Public hay Private nhằm xác định phạm vi hoạt động của kiểu dữ liệu được khai báo. Đồng thời khai báo kiểu chỉ được thực hiện ở cấp mô-đun (không thực hiện được trong các chương trình con). Khi không chỉ rõ thì phạm vi hoạt động thì mặc định của một kiểu dữ liệu tự định nghĩa là Public.

6.4. Khai báo mng tĩnh

Cú pháp:

[Public/Private/Dim] <tên_mảng> (<thông_số_về_chiều>) as <tên_kiểu>

Các thông số về chiều có thể biểu diễn qua các ví dụ sau:

Dim a(3 To 5) As Integer ‘ Mảng 1 chiều với các chỉ số từ 3 đến 5

Dim A(3) As Long ‘ Mảng 1 chiều với chỉ số đến 3 (mảng 1 chiều có 4

phần tử với chỉ số từ 0 đến 3)

Dim A(2 To 4, 6) As Double ‘ Mảng 2 chiều với một miền chỉ số từ 2 tới 4 và một miền có chỉ số từ 0 đến 6.

Các từ khoá Public hay Private xác định phạm vi hoạt động của biến mảng (trong trường hợp mảng được khai báo mức mô-đun). Các qui định về phạm vi hoạt động của mảng tương tự với biến thông thường - đã được trình bày ở phần trước.

6.5. Khai báo mng động

Cú pháp:

[Public/ Private/ Dim] <tên_mảng> () as <tên_kiểu>

Trong khai báo trên không chứa các thông số về chiều và đó thuần túy chỉ là một khai báo. Các phần tử của mảng chưa được tạo ra (hay nói cách khác mảng vẫn chưa thực sựđược cấp phát bộ nhớ) và vẫn chưa sẵn sàng để sử dụng. Trước khi sử dụng mảng động hoặc khi muốn thay đổi kích thước của mảng, sử dụng lệnh Redim. Cú pháp như sau:

Redim <tên_mảng> (<các thông số về chiều>) as <tên kiểu>

Chú ý rằng <tên_kiểu> phải đúng như khai báo ban đầu, các thông số về chiều có thể khác trước cả về số chiều và kích thước của từng chiều. Khi đó, các dữ liệu cũ trong mảng không còn nữa, thay vào đó là những phần tử mới được khởi tạo.

6.6. Khai báo, to và làm vic vi biến đối tượng

Khai báo và tạo biến đối tượng phải dùng thêm từ khóa New

Dim <tên_biến> as New <Kiểu_dữ_liệu>

<Kiểu_dữ_liệu> là lớp (class) đã được định nghĩa từ trước. Phép gán đối tượng được thực hiện với từ khóa Set

Set <biến_đối_tượng> = <giá_trị>

Chú ý rằng nếu thực hiện khai báo một biến đối tượng như thông thường (không có từ khóa New) thì biến thực sự chưa được tạo ra. Trong trường hợp đó, người sử dụng phải tạo và gán đối tượng với các từ khoá tương ứng là New và Set.

Dim <tên_biến> as <Kiểu_dữ_liệu> Set <tên_biến> = New <Kiểu_dữ_liệu>

Chú ý: câu lệnh Set không phải là câu lệnh khai báo, vì vậy nó phải được viết trong một chương trình con nào đó chứ không thể nằm trong phần General của một mô-đun.

Làm việc với một biến đối tượng tức là quá trình thao tác với đối tượng thông qua các thuộc tính, phương thức và các sự kiện của đối tượng đó. Để truy cập tới các thuộc tính và phương thức của đối tượng ta sử dụng theo cú pháp sau, chú ý đến dấu chấm ( . ) giữa tên biến và tên thuộc tính hay tên phương thức:

<Tên_biến>.<Tên_thuộc_tính>

<Tên_biến>.<Tên_phương_thức> <(tham_số_của_phương_thức)> 7. Các toán t và hàm thông dng

7.1. Các toán t

Toán tửđược sử dụng cho mục đích xử lý dữ liệu. Ta sử dụng các toán tửđể thực hiện tính toán, so sánh, gán và thực hiện nhiều thao tác khác. Dưới đây là danh sách và ý nghĩa của một số toán tử thông dụng:

Toán tử Mô tả

Toán tử gán

= Gán giá trị cho biến hoặc thuộc tính Toán tử toán học

+ Cộng

- Trừ

* Nhân

Một phần của tài liệu vba1 (Trang 33 - 38)

Tải bản đầy đủ (PDF)

(78 trang)