Vai trò của lệnh Dim trong lập trình macro VBA
Trong bài viết này, Blog Học Excel Online sẽ giới thiệu với bạn về lệnh Dim và vai trò của nó trong lập trình macro VBA. Định nghĩa về Dim và vì sao Dim được sử dụng phổ biến? Dim, viết tắt cho từ Dimension, là lệnh được dùng để gọi tên biến số và tên loại của nó. Thường thì lệnh Dim ...
Trong bài viết này, Blog Học Excel Online sẽ giới thiệu với bạn về lệnh Dim và vai trò của nó trong lập trình macro VBA.
Định nghĩa về Dim và vì sao Dim được sử dụng phổ biến?
Dim, viết tắt cho từ Dimension, là lệnh được dùng để gọi tên biến số và tên loại của nó. Thường thì lệnh Dim nằm ở phần đầu của dòng lệnh macro và có cấu trúc như sau:
Dim [Tên biến số] as [Tên kiểu loại của biến]
Tên biến được tùy chọn bất kỳ miễn sao nó là một từ đơn và không được trùng với tên các hàm VBA, tên cấp bậc hay điểm phân loại (do đó bạn không thể đặt tên biến là Worksheet hay Sub được). Ở ô trống còn lại, ta cần điền vào tên kiểu loại của biến đó. Mục này sẽ giới hạn loại dữ liệu được phép lưu trữ trong biến. Một số các kiểu loại biến thường được sử dụng đó là:
- Range: Dữ liệu dạng dải ô tính trong Excel
- Long: Dữ liệu dạng ký tự số có giá trị nằm giữa -2,147,483,647 và 2,147,483,647
- String: Dữ liệu dạng ký tự chữ (yêu cầu phải có dấu nháy “” bảo vệ bên ngoài)
- Worksheet: Dữ liệu dạng bảng tính Excel
- Boolean: Dữ liệu dạng logic: Đúng (-1) hoặc Sai (0)
Lưu ý, nếu biến của bạn được gọi tên dưới dạng tập hợp thì bạn cũng phải chú thích thêm điểm giới hạn của tập hợp đó, cụ thể như sau:
Dim myArray(1 To 10) As Variant
Tìm hiểu ngay: Địa chỉ học Excel tại Hà Nội
Lệnh Dim có phải là lệnh bắt buộc phải sử dụng hay không?
Câu trả lời là không, bạn không cần thiết phải dùng Dim để gọi tên các biến trong quá trình chạy lệnh VBA. Bất cứ biến nào không được liệt kê sẽ tự động được xếp vào loại Variant, có nghĩa là trong quá trình chạy lệnh VBA sẽ tự động lọc và lựa chọn 1 kiểu biến bất kỳ cho chúng để chạy thử, miễn sao không có lỗi xảy ra.
Liệu có thể tự bắt buộc chương trình phải gọi tên biến trước khi chạy lệnh hay không?
Nếu như bạn điền cụm từ Option Explicit lên phần đầu của mô-đun lệnh (ngay trước hàm thủ tục hay công thức đầu tiên của chuỗi lệnh) thì hệ thống sẽ yêu cầu bạn phải liệt kê hết tất cả các biến bạn đang sử dụng. Nếu bạn cố tình chạy lệnh mà không liệt kê biến, cửa sổ Visual Basic Editor sẽ bôi đâm tên biến còn thiếu và kèm theo một bảng thông báo lỗi như sau:
Để thêm cụm từ Option Explicit một cách tự động, bạn có thể nhờ cậy Visual Basic Editor kích hoạt chức năng này ngay từ phần mở đầu của mỗi mô-đun. Ta thực hiện bằng cách truy cập vào menu Tools trong cửa sổ VBE, sau đó chọn mục Options.
Sau khi bạn chọn hộp kiểm Require Variable Declaration, Editor sẽ tự động thêm vào cụm từ Option Explicit ngay từ phần mở đầu của mỗi mô-đun. Cách này vừa giúp bạn tiết kiệm vô khối thời gian, đồng thời tránh việc bỏ quên không sử dụng một trong những chức năng tuy đơn giản nhưng vô cùng quan trọng này.
Lý do sử dụng lệnh Dim:
Việc sử dụng lệnh Dim để liệt kê biến số đóng vai trò quan trọng bởi những lý do như sau:
- Giúp người đọc dễ hiểu nội dung mã lệnh: Nếu bạn rải rác nhiều biến số khác nhau trong các chuỗi hàm thủ tục, việc liệt kê từng biến một sẽ giúp người đọc có thể dễ dàng hình dung được toàn thể nội dung của mã lệnh, đặc biệt khi biến số đó chứa các giá trị như ký tự số hay dải ô tính
- Kiểm soát lượng biến số cũng như khiến lệnh trở nên gọn gàng hơn: Nếu bạn tập cho mình thói quen liệt kê biến trước khi chạy một lệnh bất kỳ, bạn cũng đang tự xây dựng một bộ từ vựng của riêng mình để trong quá trình chạy lệnh sau này bạn hoàn toàn có thể tham chiếu lại xem nó lưu trữ giá trị nào. Điều này giúp bạn kiểm soát chặt chẽ được hoạt động của từng biến cũng như xác lập đúng giá trị lưu trữ trong mỗi biến.
- Phòng tránh các lỗi chính tả không cần thiết: Thói quen thường thấy đó là đối với những tên biến nào đó có nhiều hơn 3 chữ cái thì phải có ít nhất 1 chữ được viết hoa. Phần nội dung chính của lệnh sẽ bao gồm các ký tự chữ dạng thường. Khi đó Visual Basic Editor sẽ tự động viết hoa bất cứ ký tự nào được lưu trong bộ từ vựng của nó, cùng với các biến số đã được liệt kê từ trước. Về sau, bất cứ lúc nào một biến số không tự động viết hoa sau khi được điền vào lệnh thì điều đó chứng tỏ bạn đã đánh vần sai tên biến đó.
- Ngăn việc lưu trữ các dạng dữ liệu sai: Nếu bạn thiết lập 1 biến chỉ lưu trữ ký tự số nhưng dòng lệnh mà bạn vô tình viết lại đặt biến dưới dạng một biến loại ký tự chữ thì sẽ có lỗi xảy ra. Lỗi này sẽ đóng vai trò thông báo cảnh báo cho bạn biết rằng hoặc việc thiết lập biến có vấn đề, hoặc bạn cần phải dành 1 biến khác để lữu các ký tự chữ.
- Là tiêu chuẩn trong lập trình VBA: Liệt kê biến số là một việc không thể thiếu trong bất cứ ví dụ lập trình tiêu biểu nào. Vậy nên bạn hãy tập làm quen dần với nó đi, bởi vì điều này sẽ giúp bạn tránh khỏi cơn đau đầu mỗi khi chạy một lệnh phức tạp nào đó.
Lớp học VBA ở Hà Nội