Tôi giải thích cho những bạn thích tìm hiểu thêm về nguồn gôc của VBA trong ngữ cảnh ngôn ngữ lập trình. Chứ nếu chỉ muốn viết VBA thì giải thích như bài #2 là đủ rồi.
VBA là ngôn ngữ của Microsoft dựa theo nguyên lý của ngôn ngữ Basic.
Basic là ngôn ngữ rất xưa. Thời ấy máy tình còn yếu và rất ít ram cho nên ngừoi ta phải sử dụng những phương pháp giúp chương trình giảm ram. Một trong những phương pháp này là cách đặt tên biến. Một số ngôn ngữ dùng luật mặc định. Ví dụ như Fortran IV (thời cổ) mặc định rằng các biến bắt đầu bằng { i, j, k, l, m, m, n } thì là integer và các biến còn lại là float. Riêng Basic thì mặc định rằng các biến string thì kết bằng $, integer thì kết bằng %, và chỗ còn lại là float. Trình dịch đọc các ký hiệu này thì tự động biết giành chỗ trong bộ nhớ cho biến.Từ Dim dùng để khai báo biến thực ra bắt nguồn ở Dimension, tức là từ khoá dùng để khai báo mảng (array).
Việc này thì liên quan gì đến giảm bộ nhớ? Tên biến dài quá cũng tốn bộ nhớ. Basic phiên bản xưa muốn giới hạn tên biến trong vòng 2 bytes, và bạn chỉ có từ A đến Z để đặt tên biến, cần nhiều hơn thì A1, A2,... Chứ không có AA.
Những hàm thư viện của Basic cũng theo tinh thần đó, có dấu $ có nghĩa là nó trả về string, dấu % là trả về integer... Đó là lý do bạn thấy LEFT$, RIGHT$,...
(nhưng cũng có phiên bản Basic không theo tinh thần đó, mà dùng $ để bảo rằng đây là loại hàm thuộc thư viện string, nó có thể trả về dạng khác - điển hình InStr)
Lưu ý là khác với Fortran hay C là ngôn ngữ cần trình dịch từ đầu đến cuối (compiler languages), Basic là ngôn ngữ làm tới đâu dịch tới đó (interpreter languages). Tức là với Basic, bạn có thể chạy khúc đầu đúng ngữ pháp và khi tới khúc dịch không được thì nó dừng lại; khác với Fortran và C, chỉ cần 1 khúc không đúng ngữ pháp là nó không dịch tiếp, khỏi nói chuyện chạy. Về sau này, cái IDE của VBA mới ra thêm những chuyện báo lỗi trước. Tuy nhiên, nếu để ý thì các bạn vẫn thấy trường hợp nó chạy môt lúc rồi báo cho bạn là nó không tìm được 'object' gì gì đó.
Lưu ý quan trọng: cái này chỉ dùng để biết chơi cho vui, và nếu gặp code thì hiểu ngừoi ta làm gì thôi. Chứ đối với hiện nay thì cách khai báo này LỖI THỜI rồi. Các ngôn ngữ lập trình đời mới đều theo hướng đối tượng. Và nếu là thật sự hướng đối tượng thì biến có thể không định trước kiểu.
@chủ thớt: tôi không giao thiệp với những từ ngữ Hi/thanks. Trường hợp ngoại lệ cho những bạn lớn lên ở ngoại quốc, không biết tiếng Việt thì thì tôi sẵn sàng hầu tiếp bằng tiếng Anh.