Học lập trình VBA trong Excel
Bước đệm đầu tiên nếu bạn muốn học VBA là bạn phải trang bị một kiến thức excel thuần thục. Bởi bản chất excel là một công cụ tính toán, trình bày thông dụng và vô cùng hữu ích, trong đó không thể không nhắc đến macro trong excel. Trước hết, bạn nên học Visual Basic để giải quyết công việc của mình bởi nó sử dụng ở hầu hết các Microsoft, không chỉ riêng excel.
Bạn có thể tự học lập trình VBA trong Excel được không?
Hoàn toàn có thể, nếu bạn là một người kiên trì, chịu khó tìm tòi. Bởi VBA vốn dĩ là một kho tàng kiến thức khổng lồ, Bạn có thể bắt đầu bằng những kiến thức từ đơn giản đến phức tạp hơn. Và quan trọng nhất là học đi đôi với thực hành, học đến đâu thực hành tới đó. Khi đó kiến thức bạn học sẽ được ghi nhớ lâu nhất.
Nguồn tài liệu để học lập trình VBA trong Excel ở đâu?
Hiện nay, với không gian mở, bạn có thể tìm tài liệu học tập ở bất kỳ đâu. Bạn có thể tìm học trên Youtube, internet hay các tài liệu PDF, khóa học online được mở bán trên mạng. Tuy nhiên, theo phương pháp nào thì sự kiên trì và một cách sắp xếp khoa học; chiến lược tốt cũng là yếu tố tiên quyết nhé!
Khi vốn kiến thức của bạn đủ nhiều; thì bạn có thể áp dụng giải quyết những vấn đề phức tạp trong công việc cũng như thực tế.
Trên đây chúng tôi đã tổng hợp lại những điều cơ bản về lập trình VBA trong Excel; hiểu được những khái niệm cũng như cách lập trình cơ bản sẽ giúp bạn giải quyết những vấn đề khó hơn. Hẹn gặp lại vào bài viết tiếp theo nhé!
Xem thêm:
Làm thế nào để bắt đầu với Excel Macro và lập trình VBA? Bài viết này sẽ giúp bạn bắt đầu ngay với Macros và VBA trong Excel.
Xem nhanh
Excel Macros là những chương trình nhỏ giúp lặp đi lặp lại những thao tác từ đơn giản đến phức tạp một cách tự động trong Excel. Ngoài Excel Macros, chúng ta còn có thể gặp Word Macro, PowerPoint Macro, Outlook Macro …
VBA viết tắt của Visual Basic for Applications, là một ngôn ngữ lập trình đi kèm với một số phần mềm của Microsoft. Ngoài ra, Excel VBA, Word, PowerPoint, Outlook… được sử dụng rất phổ phiến.
Để bắt đầu với Excel Macros nói riêng hay Macros nói chung và ngôn ngữ lập trình VBA Excel, chúng ta sẽ đi mở trình soạn thảo VBA. Để mở trình soạn thảo VBA, các bạn hãy theo từng bước sau đây
1. Trong Excel, bấm chuột phải vào Ribbon và chọn mục Customize the Ribbon …
2. Trong cửa sổ Excel Options, chọn thẻ Developer như hình
3. Chỉnh sửa Macro Security để có thể chạy file có chưa Excel có chứa code VBA: trong thẻ Developer > Nhóm Code > Bấm Macro Security
4. Chỉnh Macro Security Settings như hình
5. Lưu file đã, chứ không mất hết code
6. Bây giờ thì mở trình soạn thảo VBA ra và bắt đầu code: bấm thẻ Developer > Chọn nút Visual Basic
7. Đây là cửa sổ soạn thảo VBA, tất cả code sẽ được viết trong cái cửa sổ này
8. Thêm 1 Module mới vào
9. Vị trí của Module mới và cách đổi tên Module
10. Gõ mấy dòng code đầu tiên để thử
11. Bấm nút chạy thử xem kết quả thế nào
12. Kết quả sau khi chạy Macro là 1 thông báo trong Excel như thế này
Đến đây bạn đã có thể bắt đầu tìm hiểu những điều thú vị của VBA được rồi. VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook… giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp…
Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online, click ngay=> VBA101 – VBA cơ bản dành cho người mới bắt đầu
Quý khách vui lòng cho biết Địa Chỉ Nhận Hàng để biết chính xác thời gian giao hàng
Địa chỉ đã chọn:
Đóng
Hãy chọn địa chỉ cụ thể để chúng tôi cung cấp chính xác thời gian giao hàng và tình trạng hàng.
Xem ngay các phần mềm đang giảm giá SỐC
VBA viết tắt từ Visual Basic For Applications hay còn gọi là một ngôn ngữ lập trình và thường được lập trình trên ứng dụng văn phòng như Word, Excel, PowerPoint,… Có thể hiểu rằng tất cả những ngôn ngữ được sử dụng trong Excel đều sử dụng ngôn ngữ VBA.
Trong kỹ thuật thì ngôn ngữ VBA là ngôn ngữ lập trình hướng vào những sự kiện của riêng Microsoft. Người ta thường biết VBA là ngôn ngữ lập trình mở rộng được tạo bởi tập hợp những lệnh cốt lõi và dần mở rộng trên cơ sở hình thành của những ứng dụng, từ đó làm việc trực tiếp với những đối tượng có trong ứng dụng.
VBA trong Excel hay còn gọi Visual Basic for Applications (VBA) trong Excel được đánh giá là ngôn ngữ lập trình nhẹ nhưng vô cùng mạnh mẽ. VBA còn sở hữu tính năng vô cùng thú vị đó là cho phép bạn có thể viết các hàm hoặc lệnh của riêng mình trong chính trang tính Excel của mình.
Macro có thể hiểu là tập hợp những dòng lệnh với nhau. Với những ai mới bắt đầu trong việc sử dụng Macro trong công việc thường sử dụng chức năng Macro Recorder để thực hiện những thao tác đầu tiên. Bên cạnh đó, Excel còn hỗ trợ người dùng tính năng recorder các công việc đã thực hiện và chúng không còn ghi lại khi bạn thực hiện dừng tính năng này.
Macro có thể được tạo từ ngôn ngữ lập trình VBA và được biết bởi chính người soạn thảo.
Đầu tiên để sử dụng được tab Developer, bạn cần phải thực hiện thao tác hiển thị thẻ Developer trên thanh Ribbon.
Bước 1: Đầu tiên, bạn nên nhấp chuột và chọn mục Developer trên thanh Ribbon.
Bước 2: Trong nhóm Code, bạn hãy nhấn chọn vào Visual Basic.
Lúc này giao diện của soạn thảo VBA trên Excel xuất hiện.
Cách sử dụng Worksheet khá ít người sử dụng, tuy nhiên cách mở VBA khá nhanh. Bạn chỉ cần nhấn vào tab Worksheet sau đó nhấp chuột phải và chọn View Code.
Đối với phương pháp này không chỉ mở VB Editor mà còn có chiều hướng chuyển người dùng đến cửa sổ cho đối tượng bảng tính đó.
Thanh Menu là nơi chứa tất cả những thông tin trong Excel để người sử dụng có thể tùy chọn sử dụng trong quá trình Visual Basic Editor. Thanh Menu cũng tương tự như thanh Ribbion Excel là nơi chứa các tab và các tùy chọn cho tab.
Bên cạnh những phím hiển thị của Visual Basic Editor đều có những phím tắt bên cạnh. Nếu người dùng biết sử dụng phím tắt sẽ giúp họ thao tác được nhanh và dễ dàng hơn với VB Editor.
Toolbar là thanh công cụ đã có mặc định trong VB Editor, trong thanh Toolbar chứa một số tùy chọn hữu ích giúp người dùng dễ dàng sử dụng. Thanh Toolbar cũng tương tự như thanh Quick Access Toolbar có trong Excel giúp cho phép người dùng truy cập nhanh hơn, hữu ích hơn.
Trên thanh Toolbar, bạn có thể dễ dàng tinh chỉnh bằng cách xóa hoặc thêm tùy chọn bằng cách chọn biểu tượng mũi tên nhỏ nằm hướng xuống dưới đặt ở cuối thanh Toolbar.
Trong trường hợp bạn muốn di chuyển thanh Toolbar lên trên thanh Menu, bạn hãy chọn vào biểu tượng 3 chấm ở đầu thanh Toolbar và di chuyển lên thanh Menu. Như vậy là đã thực hiện xong quá trình di chuyển thanh.
Trong VB Editor có 4 thanh Toolbar chính đó là: Standard, Debug, Edit và User. Nếu bạn muốn truy cập thanh Toolbar khác thì phải truy cập vào tùy chọn View sau đó, di chuột qua và lựa chọn Toolbar tùy ý.
Project Explorer là cửa sổ bên trái trên giao diện của VB Editor, tại đây hiển thị tất cả những đối tượng mà bạn đang mở trong Excel. Tất cả những Workbook hoặc add-in được mở thì đều được coi là một project. Mỗi project đa dạng bộ sưu tập của nhiều đối tượng.
Trên giao diện có biểu tượng dấu “+” ở ngay góc trái các đối tượng. Chúng ta có thể sử dụng biểu tượng này để thu gọn hoặc mở rộng để xem danh sách một cách đầy đủ, chất lượng.
Một số đối tượng nổi bật là một phần của Project Explorer:
1. Đối với tất cả Workbook đang được mở, ở mỗi workbook hay còn gọi là project gồm có một số đối tượng sau đây:
2. Trong tất cả Add-in đang mở
Project Explorer được được coi là nơi phác thảo tất cả những đối tượng được mở trong Excel. Trong Add-in phím tắt để mở Project Explorer là Ctrl + R, bạn chỉ cần chọn vào biểu tượng đóng ở góc trên cùng bên phải của giao diện, như vậy là đã thực hiện xong.
Lưu ý: Trong Project Explorer có sở sổ mã giúp chúng ta có thể viết mã, sao chép hoặc dán mã. Cửa sổ mã sẽ xuất hiện khi bạn nhấp đúp chuột vào đối tượng đó.
Cửa sổ Properties là nơi dùng để hiển thị thuộc tính các đối tượng mà người dùng lựa chọn sử dụng. Trong trường hợp, cửa số của bạn không có Properties thì bạn nên nhấn mở lại bằng phím F4 hoặc bạn hãy truy cập vào tab View > Chọn Properties Window.
Cửa sổ Properties là một dạng cửa sổ pop-up, chúng được gắn vào VB Editor. Bên cạnh đó, cửa sổ Properties có thể thay đổi thuộc tính của một số đối tượng mà bạn muốn chọn. Cụ thể bạn có thể ẩn bằng tính hoặc có thể thay đổi thuộc tính Visible của đối tượng bảng tính được chọn.
Cửa sổ Immediate có tác dụng gỡ các lỗi, để gỡ các lỗi trên cửa sổ Immediate bạn phải sử dụng nút lệnh Print.Debug trong mã và sau đó bấm chạy mã. Khi thực hiện thao tác này sẽ giúp bạn gỡ mã lỗi và xác định vị trí mà mã bị lỗi.
Cửa sổ Immediate không hiển thị trên VB Editor, vì vậy để mở cửa sổ này bạn cần sử dụng phím tắt Ctrl + G hoặc có thể truy cập vào Tab View sau đó chọn Immediate Window.
Trên đây là cách tự điều chỉnh độ rộng ô trong Excel đơn giản, nhanh chóng. Nếu bạn còn bất kỳ thắc nào cần được giải đáp, bạn vui lòng để lại bình luận bên dưới để Điện máy XANH hỗ trợ bạn nhé!
Đang xử lý… Vui lòng chờ trong giây lát.
Học vba excel có khó không?
Học VBA có thể khó hoặc dễ tùy thuộc vào năng lực và đam mê của bạn. Nếu bạn có kiến thức về ngôn ngữ lập trình và Excel, bạn sẽ dễ học hơn. Nếu bạn chưa có kiến thức về ngôn ngữ lập trình và Excel, bạn sẽ khó học hơn. Để học VBA hiệu quả, bạn nên:
– Tìm hiểu về cơ bản của VBA và Excel.
– Thực hành viết code VBA trong Excel.
– Tham khảo các tài liệu học vba, bài viết, video và khóa học về VBA trên mạng.
– Tham gia các diễn đàn, nhóm, cộng đồng về VBA để hỗ trợ và trao đổi kinh nghiệm.
Bắt đầu sử dụng lập trình VBA trong Excel
Hiểu được những khái niệm cơ bản sau đây sẽ giúp bạn viết được câu lệnh lập trình VBA trong excel dễ dàng hơn.
Biến số là gì?
Khi bạn làm VBA, bạn sẽ thường xuyên làm việc với biến số. Biến số giống như kiến thức bạn đã từng học về môn đại số. Tìm (x+3y) trong đó x và y là biến. Bạn có thể gán số x và y bất kỳ, nó đại diện cho một giá trị và có thể thay đổi. Trong VBA Excel, khi bạn khai báo biến chuẩn thì những bước xử lý sau đó sẽ trở nên đơn giản hơn.
Cách khai báo biến: Dim
As
Xem thêm bài viết:
Hướng dẫn sử dụng các phím tắt chuyển sheet trong excel đơn giản nhất
Hướng dẫn cách cố định ô trong Excel đơn giản và nhanh chóng nhất
Tổng kết
VBA Excel là một kỹ năng quan trọng cần có của mỗi người khi muốn sử dụng Excel một cách hiệu quả và thành thạo. Đồng thời, đây cũng là trợ thủ đắc lực cho những ai đang học và làm việc trong ngành dữ liệu, sử dụng số liệu để phân tích và báo cáo.
>>> Nếu bạn muốn tìm hiểu kỹ càng hơn về VBA cũng như các kỹ năng Excel liên quan khác, đăng ký ngay khóa học xử lý dữ liệu của FUNiX tại đây:
>>> Xem thêm các chủ đề hữu ích:
Tại sao phân tích dữ liệu bằng excel vẫn cần thiết?
Cách sử dụng hàm IMAGE trong Excel
Cách sử dụng hàm IF với các công thức lồng nhau trong Excel
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/tag/excel-vba-programming-tutorial/
Trong bài hướng dẫn VBA dưới đây, Học Excel Online sẽ giới thiệu bạn khóa học VBA cơ bản cho người mới bắt đầu, cụ thể là tập trung vào việc tạo macro Excel. Để hiểu rõ hơn bạn có thể xem qua một vài ví dụ trong bài viết và thực hiện theo.
Xem nhanh
Ảnh chụp màn hình bên dưới hiển thị các phần chính của Visual Basic Editor:
Khi thực hiện các hoạt động trong bài hướng dẫn này hãy đóng tất cả các workbook khác đang làm việc trong Excel.
Trong excel chúng ta sử dụng ngôn ngữ VBA để tạo macro. VBA là viết tắt của Visual Basic For Applications. Khi sử dụng thuật ngữ Excel Macro có nghĩa là đang đề cập đến VBA. Thuật ngữ macro về cơ bản là một tên gọi khác của sub.
Trong VBA chúng ta tạo các dòng chỉ dẫn để VBA xử lý. Chúng ta đặt các dòng mã trong một sub. Các sub này được lưu trữ trong mô-đun.
Module chỉ đơn giản là nơi bạn chứa mã. Module giống như là các kệ sách trong hiệu sách. Mục đích chính là lưu trữ sách theo sự phân chia cụ thể để tổng thể có tổ chức và cấu trúc hơn.
Cửa sổ chính hay là cửa sổ mã là vị trí để viết mã. Để xem mã cho bất kỳ module nào bạn chỉ cần đúp vào mục Project-VBAProject.
Việc có bao nhiêu module trong workbook và bao nhiêu mục Sub trong một module là tùy vào mục đích tác vụ. Ngoài ra cách đặt tên cho module và cách tổ chức các Sub cũng sẽ tùy thuộc vào bạn.
Trong phần tiếp theo sẽ hướng dẫn sử dụng Sub.
Mỗi dòng mã là một lệnh để VBA xử lý. Và các dòng mã đó được nhóm lại gọi là sub và đặt các sub này trong module.
Chúng ta tạo sub để VBA xử lý các lệnh trong mỗi dòng mã mà chúng ta đưa ra. Khi chúng ta chọn Run Sub từ menu thì VBA sẽ quét qua các dòng mã trong Sub và xử lý lần lượt.
Bạn đã tạo được một phụ:
Lưu ý: nếu bạn không đặt con trỏ vào sub VBA sẽ chạy các tab đang hiển thị.
Bạn sẽ thấy “some text” trong ô B1 ; 5,55 trong ô C3 đến E5 và Now hiển thị trong ô F1.
Hãy xem dòng mã trong phần trước
Chúng ta cũng có thể viết dòng này như thế này
Tuy nhiên bạn không cần sử dụng Value vì đây là thuộc tính mặc đinh. Chúng ta sử dụng các dòng mã như vậy để gán giá trị (ví dụ như sao chép) giữa các ô và các biến.
VBA đánh giá bên phải của dấu”=” và đặt kết quả vào biến /cell/ phạm vi nằm bên trái dầu bằng.
Phần mã bên trái dấu bằng
Trong mã này, Sheet 1 đề cập đến tên mã của trang tính. Chúng ta sử dụng tên mã để tham chiếu đến các trang tính trong workbook. Khi tham chiếu đến một trang tính thì ta có thể sử dụng thuộc tính Range (Phạm vi) của trang tính để giới hạn một ô hoặc nhiều ô.
Bằng cách này chúng ta có thể sao chép giá trị từ ô này sang ô khác.
Dưới đây là ví dụ:
Hoạt động 4
Chúng ta có thể dễ dàng sao chép giữa các ô trên các trang tính khác nhau. Nó cũng tương tự với sao chép các ô trên cùng một trang tính. Sự khác biệt duy nhất là tên trang tính sử dụng trong mã.
Trong hoạt động dưới đây sẽ hướng dẫn chúng ta thực hiện.
Hoạt động 5.
Tất cả hướng dẫn trên đây chúng ta sử dụng tên mặc định cho các trang tính như Sheet1 và Sheet 2. Để đặt tên khác chúng ta thay đổi tên mã của trang tính. Trong cửa sổ Project-VBAProject bạn sẽ thấy sheet1 cả bên trong và bên ngoài dấu ngoặc đơn.
Tên mã có các thuộc tính sau:
Lưu ý: chúng ta chỉ có thể sử dụng tên mã nếu trang tính nằm trong cũng workbook với mã.
Tên trang tính có các thuộc tính sau:
Chúng ta chỉ có thể thay đổi tên mã trong cửa sổ Property.
Chúng ta có thể thay đổi tên trang tính từ tab và cả cửa sổ Property.
Hoạt động 6:
Có một điều dễ nhận thấy đó là chúng ta cần sử dụng tên trang tính nhiều mỗi khi muốn tham chiếu phạm vi trong mã. Một cách đơn giản hơn là chúng ta sử dụng câu lệnh With.
Chúng ta chỉ cần đề cập tên trang tính một lần và VBA sẽ áp dụng cho bất kỳ phạm vi nào chúng ta sử dụng.
Trong VBA chúng ta lấy bất kỳ mục nào trước khi dừng mã và sử dụng câu lệnh With.
Cập nhật với câu lệnh With
Chúng ta sử dụng With để bắt đầu trong ví dụ trên. Bất cứ khi nào VBA dừng hoàn toàn nó sẽ sử dụng trang tính trước đó.
Chúng ta sử dụng lệnh With với các đối tượng trong VBA bao gồm workbook, range, biểu đồ…
Biểu thị kết thúc lệnh with bằng Endwith.
Bạn chú ý là các dòng dòng mã giữa ở giữa đều thụt sang phải. Điều này gọi là thụt lề mã.
Chúng ta luôn luôn thụt lề mã giữa các mục trong VBA như Sub, câu lệnh IF, with For loop…
Bạn có thể sắp xếp các dòng mã ở bên phải bằng cách chọn các dòng mã thích hợp và nhấn phím Tab. Nhấn Shift và Tab sẽ chuyển sang trái.
Hoạt động 7
Lời giải:
Bạn có thể sao chép các giá trị từ dải ô này sang dải ô khác
Điều cần lưu ý là chúng ta sử dụng thuộc tính Value của vùng dữ liệu nguồn. Nếu bỏ qua nó để trống vào vùng dữ liệu đích .
Đoạn mã trên là một cách rất hiệu quả để sao chép giá trị giữa các ô. Bạn không cần phải chọn, sao chép và dán một cách thủ công.
Khi thao tác nên nhớ vùng dữ liệu nguồn và dữ liệu đích phải có cùng kích thước.
Hoạt động 8:
Lời giải
Nếu bạn cần chuyển đổi từ hàng sang cột và ngược lại có thể sử dụng WorksheetFunction Transpose. Đặt các giá trị từ 1 đến 4 vào các ô A1 đến A4. Đoạn mã sau sẽ ghi các giá trị từ E1 đến H1
Đoạn mã sau sẽ đọc từ E1: H1 đến L1: L4
Chúng ta có thể chia một dòng trên nhiều dòng bằng cách sử dụng dấu gạch dưới (_), ví dụ:
Biến là một phần trong ngôn ngữ lập trình. Các biến giống như các ô nhỏ trong bộ nhớ. Chúng ta sử dụng để lưu các giá trị tạm thời trong khi mã đang chạy.
Chúng ta thực hiện với biến như sau:
Các kiểu biến chúng ta sử dụng cũng tương tự các kiểu dữ liệu chúng ta sử dụng trong Excel.
Bảng dưới đây cho thấy các biến phổ biến. . Trên thực tế, bạn có thể sẽ sử dụng Long và String cho 90% các biến của mình.
Type | Chi tiết |
Boolean | Chỉ có thể đúng hoặc sai |
Currency | Giống như số thập phân nhưng chỉ có 4 số thập phân |
Date | Sử dụng cho ngày/giờ |
Double | Sử dụng cho số thập phân |
Long | Sử dụng cho số nguyên |
String | Sử dụng cho văn bản |
Variant | VBA sẽ quyết định loại biến trong thời gian chạy |
VBA không bắt buộc khai báo biến tuy nhiên chúng ta nên thực hiện thao tác này để các thao tác sau sẽ dễ dàng hơn. Để “Require Variable Declaration” (yêu cầu khai báo biến) chúng ta thêm dòng sau vào module:
Để VBA tự động thêm dòng này, hãy chọn Tools-> Options từ menu và chọn Require Variable Declaration . Bất cứ khi nào bạn tạo một module mới, VBA sẽ thêm dòng này vào đầu.
Khai báo một biến rất đơn giản, chỉ cần sử dụng định dạng sau:
Bạn có thể tùy ý đặt tên biến. Dưới đây là ví dụ về khai báo:
Để đặt giá trị trong một biến, chúng ta sử dụng cùng kiểu câu lệnh có dấu bằng.
Hoạt động 9:
Lời giải:
VBA có một công cụ tiện lợi thực sự cho phép chúng tôi kiểm tra đầu ra Công cụ này là Immediate window. Bằng cách sử dụng Debug.Print, chúng ta có thể ghi các giá trị, văn bản và kết quả của các phép tính vào immediate window.
Để xem cửa sổ này, bạn có thể chọn View-> Immediate window từ menu hoặc nhấn Ctrl + G. Các giá trị sẽ được ghi ngay cả khi Immediate window không hiển thị.
Chúng ta có thể sử dụng Immediate window để viết ra các biến để kiểm tra các giá trị nó chứa. Nếu cập nhật mã từ hoạt động cuối cùng, chúng ta có thể ghi ra các giá trị của mỗi biến. Chạy mã bên dưới và kiểm tra kết quả trong Immediate window.
Chúng ta có thể ghi và đọc giá trị giữa ô và ô, ô và biến, biến và biến bằng cách sử dụng dòng gán .
Ví dụ:
Hoạt động 10:
VBA có thể chuyển đổi biến. Nếu chúng ta gán 99,55 cho biến Long thì VBA sẽ chuyển thành số nguyên. Ví dụ trong đoạn mã dưới đây sẽ làm tròn thành 100.
VBA có thể chuyển đổi khá nhiều số như sau:
Tuy nhiên, ngay cả VBA cũng có giới hạn của nó. Đoạn mã sau sẽ dẫn đến lỗi Loại không khớp vì VBA không thể chuyển đổi văn bản thành số
Mẹo: Các lỗi không khớp thường xảy ra do người dùng vô tình đặt văn bản vào một ô mà chứa dữ liệu số.
Hoạt động 11:
Chuỗi nội dung trong Power Query
Mời bạn tham khảo thêm các khóa học VBA tại MCI:
- Làm chủ được kỹ năng xử lý dữ liệu thông qua sử dụng VBA trong Excel, đặc biệt là dữ liệu có số lượng lớn thường gặp trong ngành bán lẻ, tài chính, ngân hàng, bảo hiểm, viễn thông, CNTT,…
- Biết đọc các file text, csv nhiều dòng
- Thành thạo thiết kế báo cáo tự động nhờ VBA: thu thập dữ liệu và phân tách dữ liệu tự động, báo cáo trực quan sinh động
- Biết tạo các sự kiện để kích hoạt chương trình chạy tự động
- Biết cách kết nối với website để lấy dữ liệu tự động
- Biết cách tạo các hộp thoại lấy file chuyên nghiệp
- Gửi outlook và gmail với số lượng lớn từ 1000 đến 2000 người
- Biết cách sử dụng SQL và kết nối Excel với SQL để truy xuất dữ liệu tự động từ hệ thống
- Biết tạo các sự kiện để kích hoạt chương trình chạy tự động
- Biết cách kết nối với website để lấy dữ liệu tự động
- Biết cách thay đổi, đổi tên thư mục, copy, move, tạo thư mục…tự động
- Thiết kế hàm tự định nghĩa và thiết kế Addin cho riêng mình
- Biết cách thiết kế phần mềm đẹp và mượt mà
- Kết thúc khóa học, học viên có thể ghi Macro Excel thông qua VBA thành thạo
Bắt Tay Vào Hành Động
Nếu chỉ dừng lại ở việc suy nghĩ mà không bắt tay vào hành động, bạn rất khó để có thể đạt được những mục tiêu mà mình đề ra. Vậy nên mới một người mới tiếp cận kiến thức mới, điều quan trọng nhất là sự quyết tâm. MCI Việt Nam chúc bạn sẽ tìm ra lộ trình tự học VBA trong Excel hợp lý để đạt kết quả tốt nhất nhé!
Các khóa học
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- Advanced AWS Cloud Data Engineer Specialized
- AWS Data Engineer for Beginners Specialized
- Combo Data Engineering Foundations Specialization Hot
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Analyst with Python Track Bestseller
- Python Foundation in Data Analytics Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- IT Business Analyst Fast Track Bestseller
- Combo IT Business Analyst Level 1 & Level 2 Bestseller
- IT Business Analyst for Beginners Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường
Hướng dẫn lập trình VBA trong Excel
Để lập trình được VBA trong Excel, chúng ta cùng tìm hiểu VBA gồm có những gì:
Tạo một macro: Bạn hãy tạo một macros thể thay thế nhiều thao tác, nhiệm vụ một cách tự động. Sau này khi muốn thực hiện những thao tác đó bạn chỉ cần lấy macros là xong.
Msgbox: Dùng để thông báo cho người dùng các thao tác họ đang làm hay đã làm xong; hoặc khi họ bị làm sai trường dữ liệu mà họ đang làm các lệnh trong macros.
Workbook và worksheet object: Thể hiện phạm vi VBA được áp dụng; trong đó 1 workbook gồm nhiều worksheet, 1 worksheet gồm nhiều range.
Range object: Range là một ô hoặc một vùng dùng để tham chiếu đến một vùng chọn trong Excel. Trong lập trình VBA, đối tượng này rất quan trọng.
Variables: Nó là một loại biến số.
If then statements: Nó tương tự như hàm if trong excel.
Loop: bằng những lệnh đơn giản, loop giúp bạn lặp lại thao tác trong một vùng. Đây là một thao tác thường xuyên sử dụng.
Userform: Trên Windows, Userform là giao diện của các phần mềm; được viết trên các ngôn ngữ Visual Basic hay Java. Còn trên VBA, nó sử dụng những đối tượng Command Button, TextBox để tạo Userform.
Events: Giúp ta biết được sự kiện của người dùng lên một đối tượng nào đó. Ví dụ người dùng nhấn 1 lần chuột-click, người dùng nhấn 2 lần-double click.
Function & sub: Khi muốn VBA trả về một giá trị nào đó, bạn dùng Function. Còn khi bạn muốn VBA thực hiện hành động bất kỳ, hãy dùng Sub, Sub không trả về giá trị như Function. Với những chương trình lớn cần xử lý nhiều, thì đây là 2 hàm rất hữu dụng.
Tự học VBA trong Excel ở đâu?
Thời đại công nghệ thông tin lên ngôi, bạn có thể tìm thấy kiến thức mình cần ở khắp mọi nơi thông qua internet.
Bạn có thể tìm kiếm những cuốn sách về VBA trên mạng. MCI gợi ý bạn cuốn sách này, bạn có thể tải xuống để bắt đầu hành trình tự học của mình nhé:
Bên cạnh đó, có rất nhiều nguồn bạn có thể tự tìm kiếm như youtube, các group cộng đồng, các diễn đàn,… đây đều là các kênh mọi người có thể tự do trao đổi kiến thức với nhau.
Tham khảo khóa học VBA trong Excel từ cơ bản đến nâng cao
Bạn đang sử dụng Excel như một phần không thể thiếu trong công việc của mình. Tuy nhiên, Excel vẫn chưa thể đáp ứng được tất cả nhu cầu của bạn. Bạn vẫn phải làm rất nhiều công việc lặp đi lặp lại một cách thủ công. Và với số lượng dữ liệu lớn, bạn vẫn ước có một công cụ gì đó giúp bạn tự động hóa được toàn bộ công việc này. VBA Excel sẽ giúp bạn thực hiện nó một cách dễ dàng.
Điểm đặc biệt của khóa học VBA tại Học viện Lập trình MCI là lộ trình được thiết kế bài bản, cung cấp đầy đủ giáo trình từ lý thuyết đến các bài tập thực sau mỗi bài, các bài kiểm tra cuối khóa giúp học viên trau dồi kỹ năng và tự rèn luyện ngay sau khóa học kết thúc.
Các bài viết liên quan
Phân tích Dữ liệu và Hiểu biết Khách hàng: Tối ưu hóa Trải nghiệm Người dùng
Phân tích dữ liệu là quá trình tổng hợp, xử lý, đánh giá và giải thích các dữ liệu liên quan đến hành vi của khách hàng, bao gồm lịch sử giao dịch, hoạt động trên trang web, tương tác với sản phẩm hoặc dịch vụ, đánh giá về chất lượng và sự hài lòng, và nhiều yếu tố khác. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng phân tích dữ liệu để hiểu rõ hơn về hành vi của khách hàng. Chúng tôi hy vọng rằng bài viết này sẽ cung cấp cho bạn kiến thức và kỹ năng cần thiết để phát triển doanh nghiệp của bạn.
5 mẹo giúp lập trình VBA đơn giản – Ứng dụng cực dễ trong công việc
Việc lập trình VBA trong Excel được xem là khá phổ biến. Tuy nhiên nếu bạn không tìm hiểu kĩ thì bạn sẽ rất khó áp dụng trong công việc. Chính vì vậy, bạn hãy cùng MCI theo dõi bài viết sau để hiểu rõ VBA là gì cũng như các bước lập trình VBA trong ứng dụng Excel nhé.
Muốn làm BA thì học ngành gì? Lộ trình để phát triển thành một Business Analyst
BA đang ngày càng trở nên phổ biến và là nghề “mơ ước” của rất nhiều bạn trẻ. Vậy BA là gì? BA là công việc như thế nào? Học gì để trở thành Business Analyst?
XEM NHANH BÀI VIẾT
Với VBA trong Excel, bạn có thể tự động hóa các tác vụ bằng cách viết cái gọi là macro. Trong phần đầu của bài viết này, hãy cùng Gitiho tìm hiểu cách tạo một macro đơn giản sẽ được thực thi sau khi kích vào nút lệnh. Bắt đầu bằng cách bật thẻ nhà phát triển Developer.
Developer Tab
Để bật tab Developer bạn hãy thực hiện theo các bước sau:
Bước 1: Kích chuột phải vào bất kỳ vị trí nào trên giao diện ribbon của Excel rồi chọn tùy chọn Customize the Ribbon … trong menu xổ xuống.
Bước 2: Trong cửa sổ mới hiện thị, chọn tùy chọn Main Tabs phía dưới mục Customize the Ribbon ở bên phải (nếu cần).
Bước 3: Di chuyển xuống phía dưới của mục Main Tabs, kích vào tùy chọn Developer.
Bước 4: Bấm nút OK để hoàn tất.
Bước 5: Quay trở lại giao diện ribbon, bạn sẽ tìm thấy thẻ Developer bên cạnh tab View như hình dưới đây.
Nút lệnh
Để đặt một nút lệnh trên file Excel của bạn, hãy thực hiện các bước sau.
Bước 1: Trên tab Developer bấm nút Insert.
Bước 2: Trong nhóm ActiveX Controls của menu xổ xuống, bấm nút Command Button.
Bước 3: Kích giữ chuột trái và kéo để tạo một nút lệnh trên sheets bất kỳ trong file Excel, nơi bạn muốn đặt nút lệnh.
Chỉ định Macro
Để gán macro (một hoặc nhiều dòng mã) cho nút lệnh, hãy thực hiện các bước sau.
Bước 1: Kích chuột phải vào nút CommandButton1 (đảm bảo nút Design Mode được chọn).
Bước 2: Chọn tùy chọn View Code trong menu xổ xuống. Trình soạn thảo Visual Basic xuất hiện.
Bước 3: Đặt con trỏ của bạn giữa Private Sub CommandButton1_Click() và End Sub.
Bước 4: Nhập vào dòng mã hiển thị như bên dưới.
Range(“A1”).Value = “Gitiho xin chào các bạn”
Lưu ý: Cửa sổ bên trái có tên là Sheet1 (Sheet1) và ThisWorkbook được gọi là Project Explorer. Nếu Project Explorer không hiển thị, hãy bấm View, Project Explorer. Nếu cửa sổ Code cho Sheet1không hiển thị, hãy bấm Sheet1 (Sheet1).
Bước 5: Đóng cửa sổ Visual Basic Editor.
Bước 6: Kích vào nút lệnh trên trang tính (đảm bảo nút Design Mode được bỏ chọn).
Kết quả sẽ hiển thị như hình dưới đây:
Như vậy bạn vừa tạo một macro đơn giản trong Excel.
Trình soạn thảo Visual Basic Editor
Để mở trình soạn thảo Visual Basic Editor, trên tab Developer, bấm nút Visual Basic hoặc nhấn tổ hợp phím Alt+F11.
Cửa sổ trình soạn thảo Visual Basic Editor sẽ hiển thị như hình dưới đây.
Để học VBA bài bản và nhanh chóng hơn, hãy tham khảo các khóa học sau tại Gitiho bạn nhé:
Để tăng tính tương tác cho bảng tính Excel có sử dụng VBA của bạn, cụ thể trong trường hợp bạn muốn đưa ra một thông báo, một lưu ý cho người dùng, chúng ta dùng MsgBox trong Excel VBA.
MsgBox là một hộp thoại trong Excel có sử dụng VBA. Mục đích của việc tạp hộp thoại này là đưa ra một thông báo cho người dùng. Một MsgBox trong Excel VBA có thể được tạo ra trong trình soạn thảo code VBA của Excel như sau:
Một tin nhắn đơn giản
Bằng cách thực hiện các bước tương tự như mục Chỉ định macro ở trên, nhưng đến bước 3 thì bạn nhập vào mã sau:
MsgBox “Học tin học với Gitiho thật thú vị”
Lưu ý: Đoạn mã trên phải được nhập vào giữa dòng Private Sub CommandButton1_Click () và End Sub. Có nghĩa mã đầy đủ sẽ như sau:
Private Sub CommandButton1_Click ()
MsgBox “Hoc tin hoc voi Gitiho that thu vi”End Sub
Sau đó đóng cửa sổ Visual Basic Editor và bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Một tin nhắn nâng cao hơn một chút
Thay vì đưa ra một thông báo đơn giản như trên bạn có thể tạo một thông báo kiểu như yêu cầu nhập một số vào ô A1. Lúc này mã chính sẽ như sau:
MsgBox “Entered value is ” & Range(“A1”).Value
Khi bạn bấm vào nút lệnh trong Excel VBA sẽ nhận được kết quả như sau:
Lưu ý: Trong câu lệnh trên Gitiho đã sử dụng toán tử & để nối (nối) hai chuỗi. Mặc dù giá trị Range (“A1”). Không phải là một chuỗi, nhưng nó vẫn hoạt động ở đây.
Để bắt đầu một dòng mới trong tin nhắn, hãy sử dụng vbNewLine
Sử dụng đoạn mã sau
MsgBox “Line 1” & vbNewLine & “Line 2”
Khi bạn bấm vào nút lệnh trong Excel VBA sẽ nhận được kết quả như sau
Lưu ý: Những đoạn mã chỉ có mình phần mã chính. Bạn phải nhập các đoạn mã đó nằm giữa Private Sub CommandButton1_Click() và End Sub để có được một mã VBA hoàn chỉnh.
Xem thêm: Tìm hiểu về cách tự tạo hàm Excel trong VBA
Phần tiếp theo Gitiho sẽ cùng các bạn tìm hiểu thêm về đối tượng Workbook và Worksheet trong Excel VBA .
Cấu trúc phân cấp đối tượng
Trong Excel VBA, một đối tượng có thể chứa một đối tượng khác và đối tượng đó có thể chứa một đối tượng khác … Nói cách khác, lập trình VBA trong Excel liên quan đến việc làm việc với một hệ thống phân cấp đối tượng. Điều này nghe có vẻ khá khó hiểu, nhưng chúng tôi sẽ nói rõ.
“Mẹ” của tất cả các đối tượng là chính Excel. Chúng tôi gọi nó là đối tượng Ứng dụng (Application). Đối tượng ứng dụng chứa các đối tượng khác. Ví dụ, đối tượng Workbook (tệp Excel). Đây có thể là bất kỳ workbook nào bạn đã tạo. Đối tượng Workbook chứa các đối tượng khác, chẳng hạn như đối tượng Worksheet. Đối tượng Worksheet lại chứa các đối tượng khác, chẳng hạn như đối tượng Phạm vi (Range object).
Ở phần tạo Macro đầu tiên trong bài này đã hướng dẫn chi tiết về cách chạy một mã VBA bằng cách bám vào nút lệnh. Trong đó chúng tôi đã sử dụng dòng mã sau:
Range(“A1”).Value = “Hello”
Nhưng ý nghĩa của dòng mã trên thực sự là:
Application.Workbooks(“create-a-macro”).Worksheets(1).Range(“A1”).Value = “Hello”
Lưu ý: Các đối tượng được kết nối bằng dấu chấm. Tuy nhiên chúng ta không phải thêm một dòng mã theo cách này. Đó là vì chúng ta đã đặt một nút lệnh của mình trong tệp create-a-macro.xlsm, trên worksheet đầu tiên. Nhưng nếu bạn muốn thay đổi mọi thứ trên các worksheet khác nhau, phải bao gồm đối tượng Worksheet.
Bộ sưu tập
Bạn có thể nhận thấy rằng Workbooks và Worksheets đều là số nhiều. Đó là bởi vì chúng là bộ sưu tập. Bộ sưu tập Workbooks chứa tất cả các đối tượng Workbook hiện đang mở. Trong khi bộ sưu tập Worksheets lại chứa tất cả các đối tượng Worksheet trong sổ làm việc.
Bạn có thể tham chiếu đến một thành viên của bộ sưu tập, ví dụ một đối tượng Worksheet đơn lẻ, theo ba cách.
1. Sử dụng tên Worksheet.
Worksheets(“Sales”).Range(“A1”).Value = “Hello”
2. Sử dụng số chỉ mục (1 là trang tính đầu tiên bắt đầu từ bên trái).
Worksheets(1).Range(“A1”).Value = “Hello”
3. Sử dụng CodeName.
Sheet1.Range(“A1”).Value = “Hello”
Để xem CodeName của một worksheet bạn cần mở trình soạn thảo Visual Basic Editor. Trong Project Explorer, tên đầu tiên là CodeName. Tên thứ hai là tên worksheet (Sales), như hình ảnh dưới đây
Lưu ý: CodeName vẫn giữ nguyên nếu bạn thay đổi tên worksheet hoặc thứ tự các worksheet của mình, vì vậy đây là cách an toàn nhất để tham chiếu worksheet. Bằng cách bấm menu View > Properties để thay đổi CodeName của một worksheet. Nhưng có một nhược điểm của phương pháp này đó là bạn không thể sử dụng CodeName nếu tham chiếu một worksheet trong một workbook khác.
Thuộc tính và phương thức
Bây giờ chúng ta hãy xem xét một số thuộc tính (Properties) và phương thức (Methods) của bộ sưu tập Workbooks và Worksheets. Thuộc tính là cái gì đó mà một bộ sưu tập có (chúng mô tả bộ sưu tập), trong khi phương thức thực hiện một cái gì đó (chúng thực hiện một hành động với một bộ sưu tập).
Để đặt một nút lệnh trên worksheet của bạn và thêm các dòng mã:
1. Chèn Method của bộ sưu tập Workbooks để tạo một workbook mới.
Workbooks.Add
2. Thuộc tính Count của bộ sưu tập Worksheets đếm số trang tính trong worksheets.
MsgBox Worksheets.Count
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ có bảng thông báo như dưới đây hiển thị:
Lưu ý: Thuộc tính Count của bộ sưu tập Workbooks sẽ đếm số lượng workbooks đang hoạt động.
Lưu ý: Những đoạn mã chỉ có mình phần mã chính. Bạn phải nhập các đoạn mã đó nằm giữa Private Sub CommandButton1_Click() và End Sub để có được một mã VBA hoàn chỉnh.
Xem thêm: Hướng dẫn các phép toán trong VBA: Phép nhân, phép chia, phép cộng, mô đun
Đối tượng phạm vi Range Object là đại diện của một ô (hoặc nhiều ô) trên bảng tính (worksheet) của bạn, là đối tượng quan trọng nhất của Excel VBA.
Ở phần tiếp theo này Gitiho sẽ giới thiệu tổng quan về các thuộc tính và phương thức của đối tượng Range. Thuộc tính là một cái gì đó mà một đối tượng có (chúng mô tả đối tượng), trong khi các phương thức thực hiện một cái gì đó (chúng thực hiện một hành động với một đối tượng).
Ví dụ về phạm vi
Đặt một nút lệnh trên trang tính của bạn và nhập vào các dòng mã sau vào cửa sổ Visual Basic Editor:
Private Sub CommandButton1_Click ()
Range(“B3”).Value = 2End Sub
Khi bạn nhấp vào nút lệnh trên trang tính, chúng ta sẽ nhật được kết quả như sau:
Với mã sau:
Private Sub CommandButton1_Click ()
Range(“A1:A4”).Value = 5End Sub
Bạn sẽ nhận được kết quả như hình dưới đây
Tương tự như vậy với mã sau:
Range(“A1:A2,B3:C4”).Value = 10
Bạn sẽ nhận được kết quả như hình dưới đây
Lưu ý: Để tham chiếu đến phạm vi được đặt tên trong mã VBA Excel của bạn, hãy sử dụng dòng mã như sau:
Range(“Prices”).Value = 15
Cell
Thay vì phạm vi (Range), bạn cũng có thể sử dụng Ô (cell). Sử dụng Ô đặc biệt hữu ích khi bạn muốn lặp qua các phạm vi.
Mã sử dụng sẽ như sau:
Cells(3, 2).Value = 2
Kết quả trả về của lệnh trên sẽ như hình dưới đây.
Giải thích: Excel VBA nhập giá trị 2 vào ô ở giao điểm của hàng 3 và cột 2.
Với đoạn mã sau:
Range(Cells(1, 1), Cells(4, 1)).Value = 5
Kết quả sẽ trả về trong trang tính như hình dưới đây.
Khai báo một đối tượng phạm vi
Bạn có thể khai báo một đối tượng phạm vi bằng cách sử dụng các từ khóa Dim và Set.
Sử dụng đoạn mã đầy đủ như sau để thực hiện:
Private Sub CommandButton1_Click ()
Dim example As RangeSet example = Range(“A1:C4”)example.Value = 8End Sub
Kết quả của đoạn mã trên sẽ trả về như hình dưới đây:
Select
Một phương thức quan trọng của đối tượng Range là phương thức Select. Phương thức Select chỉ đơn giản là chọn một phạm vi.
Tương tự bạn có thể sử dụng đoạn mã sau:
Dim example As Range
Set example = Range(“A1:C4”)example.Select
Kết quả sẽ trả về như hình dưới đây:
Lưu ý: Để chọn các ô trên một trang tính khác (worksheet), trước tiên bạn phải kích hoạt trang tính này. Ví dụ, các dòng mã sau đây sẽ chọn ô B7 trên trang tính thứ ba từ bên trái.
Worksheets(3).Activate
Worksheets(3).Range(“B7”).Select
Hàng (Rows)
Thuộc tính Rows cho phép truy cập vào một hàng cụ thể của một dải ô.
Bạn có thể sử dụng đoạn mã sau:
Dim example As Range
Set example = Range(“A1:C4”)example.Rows(3).Select
Kết quả sẽ trả về như hình dưới đây:
Cột (Columns)
Thuộc tính Columns cho phép truy cập vào một cột cụ thể của một dải ô.
Bạn có thể sử dụng đoạn mã sau:
Dim example As Range
Set example = Range(“A1:C4”)example.Columns(2).Select
Kết quả sẽ trả về như hình dưới đây:
Copy/Paste
Phương pháp Copy và Paste được sử dụng để sao chép một dải ô và dán vào một nơi khác trên trang tính.
Bạn có thể sử dụng đoạn mã sau:
Range(“A1:A2”).Select
Selection.CopyRange(“C3”).SelectActiveSheet.Paste
Kết quả sẽ trả về như hình dưới đây:
Mặc dù điều này được cho phép trong Excel VBA, nhưng tốt hơn nhiều là sử dụng dòng mã bên dưới để làm chính xác như vậy.
Range(“C3:C4”).Value = Range(“A1:A2”).Value
Xóa (Clear)
Để xóa nội dung của một phạm vi Excel, bạn có thể sử dụng phương pháp ClearContents với mã cực kỳ đơn giản sau:
Range(“A1”).ClearContents
Hoặc đơn giản là sử dụng mã:
Range(“A1”).Value = “”
Lưu ý: Sử dụng phương pháp Clear để xóa nội dung và định dạng của một dải ô. Sử dụng phương pháp ClearFormats để chỉ xóa định dạng.
Đếm (Count)
Với thuộc tính Count, bạn có thể đếm số ô, hàng và cột của một phạm vi.
Bạn có thể sử dụng đoạn mã sau:
Dim example As Range
Set example = Range(“A1:C4”)MsgBox example.Count
Kết quả trả về sẽ là bảng thông báo sau hiển thị:
Hoặc cũng có thể sử dụng mã sau:
Dim example As Range
Set example = Range(“A1:C4”)MsgBox example.Rows.Count
Kết quả trả về sẽ như hình dưới đây:
Lưu ý: Theo cách tương tự, bạn có thể đếm số cột của một phạm vi.
Lưu ý: Những đoạn mã chỉ có mình phần mã chính. Bạn phải nhập các đoạn mã đó nằm giữa Private Sub CommandButton1_Click() và End Sub để có được một mã VBA hoàn chỉnh.
Xem thêm: Hướng dẫn các phép toán trong VBA: Phép nhân, phép chia, phép cộng, mô đun
Ở phần này của bài viết, Gitiho sẽ hướng dẫn các bạn cách khai báo, khởi tạo và hiển thị một biến trong Excel VBA. Việc cho phép Excel VBA biết bạn đang sử dụng một biến được gọi là khai báo một biến. Khởi tạo đơn giản có nghĩa là gán giá trị bắt đầu (ban đầu) cho một biến.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã bên dưới. Để thực hiện các dòng mã, hãy bấm vào nút lệnh trên trang tính.
Số nguyên (Integer)
Biến số nguyên được sử dụng để lưu trữ số nguyên.
Đặt một nút lệnh trên trang tính của bạn và nhập vào các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim x As Integer
x = 6Range(“A1”).Value = x
Mã đầy đủ phải nhập sẽ là
Private Sub CommandButton1_Click ()
Dim x As Integerx = 6Range(“A1”).Value = xEnd Sub
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Giải thích: Dòng mã đầu tiên sẽ khai báo một biến có tên x kiểu Integer. Tiếp theo, chúng ta khởi tạo x với giá trị 6. Cuối cùng ghi giá trị của x vào ô A1.
Chuỗi (String)
Biến chuỗi được sử dụng để lưu trữ văn bản.
Đoạn mã cụ thể như sau:
Dim book As String
book = “bible”Range(“A1”).Value = book
Kết quả trả về sẽ như hình ảnh dưới đây:
Giải thích: Dòng mã đầu tiên khai báo một biến có sổ tên kiểu String. Tiếp theo, khởi tạo sách bằng văn bản. Luôn sử dụng dấu nháy đơn để khởi tạo biến String. Cuối cùng, ghi văn bản của sổ biến vào ô A1.
Gấp đôi (Double)
Một biến kiểu Double chính xác hơn một biến kiểu Integer và cũng có thể lưu số sau dấu phẩy.
Đoạn mã cụ thể như sau:
Dim x As Integer
x = 5.5MsgBox “value is ” & x
Kết quả bảng thông báo sau sẽ hiển thị:
Nhưng đó không phải là giá trị phù hợp. Vì chúng tôi khởi tạo biến với giá trị 5.5 và nhận được giá trị 6. Những gì chúng tôi cần là một biến kiểu Double vì vậy mã sẽ như sau:
Dim x As Double
x = 5.5MsgBox “value is ” & x
Kết quả trả về sẽ là bảng thông báo sau:
Boolean
Sử dụng biến Boolean để giữ giá trị True hoặc False.
Đoạn mã cụ thể như sau:
Dim continue As Boolean
continue = TrueIf continue = True Then MsgBox “Boolean variables are cool”
Kết quả trả về sẽ là bảng thông báo sau:
Giải thích: Dòng đầu tiên khai báo một biến có tên là kiểu Boolean. Tiếp theo, chúng ta khởi tạo continue với giá trị True. Cuối cùng, sử dụng biến Boolean để chỉ hiển thị MsgBox nếu biến giữ giá trị True.
Lưu ý: Những đoạn mã chỉ có mình phần mã chính. Bạn phải nhập các đoạn mã đó nằm giữa Private Sub CommandButton1_Click() và End Sub để có được một mã VBA hoàn chỉnh.
Xem thêm: Hướng dẫn cách tùy biến comment trong Excel bằng VBA (Phần 1)
Sử dụng câu lệnh If Then trong Excel VBA để thực thi các dòng mã nếu một điều kiện cụ thể được đáp ứng.
Câu lệnh If Then
Đầu tiên bạn đặt một nút lệnh VBA trên trang tính (thực hiện như phần đầu Cách tạo Macro trong Excel) của bạn và nhập vào các dòng mã sau:
Dim score As Integer, result As String
score = Range(“A1”).ValueIf score >= 60 Then result = “pass”Range(“B1”).Value = result
Mã đầy đủ phải nhập sẽ là
Private Sub CommandButton1_Click ()
Dim score As Integer, result As Stringscore = Range(“A1”).ValueIf score >= 60 Then result = “pass”Range(“B1”).Value = resultEnd Sub
Giải thích: Nếu phạm vi ô A1 lớn hơn hoặc bằng 60, Excel VBA sẽ trả về kết quả Pass (Đạt).
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Lưu ý: Nếu phạm vi ô A1 nhỏ hơn 60, Excel VBA sẽ đặt giá trị của kết quả trống vào ô B1.
Else Statement
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:
Dim score As Integer, result As String
score = Range(“A1”).ValueIf score >= 60 Thenresult = “pass”Elseresult = “fail”End IfRange(“B1”).Value = result
Giải thích: Nếu phạm vi ô A1 lớn hơn hoặc bằng 60, Excel VBA trả về kết quả là Pass (Đậu), nếu không Excel VBA trả về kết quả là Fail (Trượt).
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Lưu ý: Chỉ khi bạn có một dòng mã sau câu lệnh Then và no Else statement thì mới được phép đặt một dòng mã ngay sau Then và bỏ qua (bỏ đi) End If (ví dụ đầu tiên). Nếu không, hãy bắt đầu một dòng mới sau các từ Then và Else và kết thúc bằng End If (ví dụ thứ hai).
Lưu ý: Những đoạn mã chỉ có mình phần mã chính. Bạn phải nhập các đoạn mã đó nằm giữa Private Sub CommandButton1_Click() và End Sub để có được một mã VBA hoàn chỉnh.
Xem thêm: Hướng dẫn cách tùy biến comment trong Excel bằng VBA (Phần 2)
Looping (vòng lặp) là một trong những kỹ thuật lập trình mạnh mẽ nhất. Nó là quá trình lặp lại 1 đoạn mã theo một số lần nhất định trong VBA. Ưu điểm của nó là giúp giảm thời gian của những việc phải thực hiện lặp đi lặp lại nhiều lần như in ấn hàng loạt Hóa đơn, phiếu thu, phiếu chi … với một mẫu phiếu duy nhất.
Single Loop (Vòng lặp đơn)
Bạn có thể sử dụng một vòng lặp đơn để lặp qua phạm vi ô một chiều.
Bạn có thể đặt một nút lệnh trên trang tính của mình và nhập vào các dòng mã sau:
Dim i As Integer
For i = 1 to 6Cells (i, 1) .Value = 100Next i
Mã đầy đủ phải nhập sẽ là
Private Sub CommandButton1_Click ()
Dim i As IntegerFor i = 1 to 6Cells (i, 1) .Value = 100Next iEnd Sub
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Giải thích: Các dòng mã giữa For và Next sẽ được thực thi sáu lần. Với i = 1, Excel VBA nhập giá trị 100 vào ô ở giao điểm của hàng 1 và cột 1. Khi Excel VBA đến Next i, nó tăng i với 1 và nhảy trở lại câu lệnh For. Đối với i = 2, Excel VBA nhập giá trị 100 vào ô ở giao điểm của hàng 2 và cột 1 …
Lưu ý: Nên sử dụng phím tab để tạo thụt lề cho mã giữa các từ For và Next. Điều này sẽ giúp cho mã của bạn dễ đọc hơn.
Double Loop (Vòng lặp kép)
Khi chúng ta cần thực hiện nhiều vòng lặp lồng nhau trong cùng 1 câu lệnh VBA, khi đó chúng ta cần sử dụng vòng lặp kép.
Bạn có thể đặt một nút lệnh trên trang tính của mình và nhập vào các dòng mã sau:
Dim i As Integer , j As Integer
For i = 1 To 6For j = 1 To 2Cells (i, j) .Value = 100Next jNext i
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Giải thích: Với i = 1 và j = 1, Excel VBA nhập giá trị 100 vào ô ở giao điểm của hàng 1 và cột 1. Khi Excel VBA đến Next j, nó tăng j với 1 và nhảy trở lại câu lệnh For j. Đối với i = 1 và j = 2, Excel VBA nhập giá trị 100 vào ô ở giao điểm của hàng 1 và cột 2.
Tiếp theo, Excel VBA bỏ qua Next j vì j chỉ chạy từ 1 đến 2. Khi Excel VBA đến Next i, nó tăng i với 1 và nhảy trở lại câu lệnh For i. Đối với i = 2 và j = 1, Excel VBA nhập giá trị 100 vào ô ở giao điểm của hàng 2 và cột 1 …
Triple Loop (Vòng lặp ba)
Bạn có thể sử dụng một vòng lặp ba để lặp qua các phạm vi hai chiều trên nhiều trang tính Excel.
Đặt một nút lệnh trên trang tính của bạn và nhập vào các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim c As Integer, i As Integer, j As Integer
For c = 1 To 3For i = 1 To 6For j = 1 To 2Worksheets(c).Cells(i, j).Value = 100Next jNext iNext c
Giải thích: Thay đổi duy nhất được thực hiện so với mã cho vòng lặp kép là chúng tôi đã thêm một vòng lặp nữa và thêm Worksheets(c). Ở phía trước Cells để lấy phạm vi hai chiều trên sheet đầu tiên cho c = 1, sheet thứ hai cho c = 2 và sheet thứ ba cho c = 3.
Do While Loop
Bên cạnh vòng lặp For Next, còn có các vòng lặp khác trong Excel VBA. Ví dụ, vòng lặp Do While Loop. Mã được đặt giữa Do While và Loop sẽ được lặp lại miễn là phần sau Do While là đúng.
Bạn tiến hành đặt một nút lệnh trên trang tính của mình và nhập vào các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim i As Integer
i = 1Do While i < 6Cells(i, 1).Value = 20i = i + 1Loop
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Giải thích: Miễn là i nhỏ hơn 6, Excel VBA nhập giá trị 20 vào ô ở giao điểm của hàng i và cột 1 và tăng i lên 1. Trong Excel VBA (và trong các ngôn ngữ lập trình khác), ký hiệu ‘= ‘nghĩa là trở thành. Nó không có nghĩa là bình đẳng. Vì vậy, i = i + 1 có nghĩa là i trở thành i + 1.
Nói cách khác lấy giá trị hiện tại của i và thêm 1 vào nó. Ví dụ: nếu i = 1, i trở thành 1 + 1 = 2. Kết quả là giá trị 20 sẽ được đặt vào cột A năm lần (không phải 6 vì Excel VBA dừng khi kết quả bằng 6).
(Còn tiếp)
Trên đây Gitiho vừa giới thiệu với các bạn Phần 1 của bài viết Tìm hiểu về VBA và cách sử dụng cơ bản nhất trong Excel. Hãy tiếp tục theo dõi các bài viết tiếp theo của chúng tôi để tiếp tục tìm hiểu về VBA nhé. Chúc các bạn thành công!.
Ở phần 2 của bài viết này, Gitiho tiếp tục giúp bạn đọc tìm hiểu về VBA và cách sử dụng cơ bản nhất trong Excel
Xem thêm: Tìm hiểu về VBA phần 1
Khi viết các mã Excel VBA sẽ khó có thể tránh được các lỗi với các câu lệnh, nhưng làm thế nào để tìm ra các lỗi đó để khắc phục? Ở phần này của bài viết, gitiho sẽ hướng dẫn các bạn cách xử lý các lỗi macro trong Excel. Đầu tiên, hãy tạo một số lỗi.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:
Xem thêm: Tìm hiểu về VBA và cách sử dụng cơ bản nhất trong Excel (Phần 1) để biết cách đặt một nút lệnh trên trang tính và các bước để thêm các dòng mã vào Excel VBA.
x = 2Range(“A1”).Valu = x
Trong đó đoạn mã đầy đủ sẽ là:
Private Sub CommandButton1_Click () x = 2Range(“A1”).Valu = xEnd Sub
Bước 1: Khi bạn bấm vào nút lệnh trong Excel VBA sẽ nhận được kết quả thông báo lỗi như sau.
Bước 2: Bấm vào nút OK. Trong đó * biến x không được xác định.
Bước 3: Trong cửa sổ Visual Basic Editor hiển thị, bạn bấm nút Reset để dừng trình gỡ lỗi.
Bước 4: Sửa lỗi bằng cách thêm dòng mã sau vào đầu mã.
Dim x As Integer
Lúc này đoạn mã đầy đủ sẽ là:
Private Sub CommandButton1_Click () Dim x As Integerx = 2Range(“A1”).Valu = xEnd Sub
Bạn có thể đã nghe nói về kỹ thuật được gọi là gỡ lỗi trước đây. Với kỹ thuật này, bạn có thể thực hiện từng bước mã của mình.
Bước 5: Trong Visual Basic Editor, đặt con trỏ của bạn trước từ Private và nhấn F8.
Dòng đầu tiên chuyển sang màu vàng.
Bước 6: Nhấn F8 ba lần nữa.
Thông báo lỗi sau xuất hiện.
Như hình ảnh hiển thị cho thấy đối tượng Range có một thuộc tính là Value. Trong đó từ đã Value không được viết đúng chính tả (chỉ ghi là Valu) ở đây và chúng ta đã xác định được lỗi của mã VBA trong này. Gỡ lỗi là một cách tuyệt vời để không chỉ tìm lỗi mà còn hiểu mã tốt hơn.
Xem thêm: Hướng dẫn các phép toán trong VBA: Phép nhân, phép chia, phép cộng, mô đun
Trong phần này của bài viết, Gitiho sẽ hướng dẫn các bạn cách tìm các hàm quan trọng nhất để thao tác với chuỗi trong Excel VBA .
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã bên dưới. Để thực hiện các dòng mã, hãy bấm vào nút lệnh trên trang tính.
Join Strings (Nối chuỗi)
Ở đoạn mã dưới đây, chúng tôi sử dụng toán tử & để nối (nối) các chuỗi với nhau. Mã cụ thể sẽ như sau:
Dim text1 As String, text2 As Stringtext1 = “Hi”text2 = “Tim”MsgBox text1 & ” ” & text2
Lúc này đoạn mã đầy đủ sẽ là:
Private Sub CommandButton1_Click () Dim text1 As String, text2 As Stringtext1 = “Hi”text2 = “Tim”MsgBox text1 & ” ” & text2End Sub
Sau đó đóng cửa sổ Visual Basic Editor và bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Lưu ý: Để chèn khoảng trắng, hãy sử dụng dấu “”
Left (Trái)
Để trích xuất các ký tự ngoài cùng bên trái từ một chuỗi, hãy sử dụng Left. Mã cụ thể sẽ như sau:
Dim text As Stringtext = “example text”MsgBox Left(text, 4)
Sau khi đóng cửa sổ Visual Basic Editor và bấm vào nút lệnh Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Right (Phải)
Để trích xuất các ký tự ngoài cùng bên phải từ một chuỗi, hãy sử dụng Right. Chúng ta cũng có thể chèn trực tiếp văn bản vào một hàm.
MsgBox Right(“example text”, 2)
Kết quả trả về sau khi bạn bấm vào nút lệnh Excel VBA sẽ như hình dưới đây:
Mid (Giữa)
Để trích xuất một chuỗi con, bắt đầu ở giữa một chuỗi, hãy sử dụng Mid. Bạn có thể chèn trực tiếp văn bản vào một hàm.
MsgBox Mid(“example text”, 9, 2)
Kết quả trả về, bạn sẽ nhận được thông báo như hình dưới đây:
Trong đó: Bắt đầu ở vị trí 9 (t) với độ dài 2. Bạn có thể bỏ qua đối số thứ ba nếu muốn trích xuất một chuỗi con bắt đầu ở giữa một chuỗi, cho đến cuối chuỗi.
Len
Để lấy độ dài của một chuỗi, hãy sử dụng Len. Mã chi tiết sẽ như sau:
MsgBox Len(“example text”)
Kết quả trả về khi bạn bấm nút lệnh Excel VBA sẽ nhận được thông báo như hình dưới đây:
Lưu ý: Bao gồm khoảng trống (vị trí 8)!
Instr
Để tìm vị trí của một chuỗi con trong một chuỗi, hãy sử dụng Instr. Mã chi tiết sẽ như sau:
MsgBox Instr(“example text”, “am”)
Kết quả trả về khi bạn bấm nút lệnh Excel VBA sẽ nhận được thông báo như hình dưới đây:
Lưu ý: chuỗi “am” được tìm thấy ở vị trí 3.
Trong phần tiếp theo này, Gitiho sẽ hướng dẫn các bạn cách sử dụng các mã Excel VBA để làm việc với các đối tượng: Ngày, tháng, năm, ngày và giờ hiện tại; Giờ, phút, giây; Giá trị thời gian.
Tìm hiểu cách làm việc với ngày và giờ trong Excel VBA .
Đầu tiên bạn đặt một nút lệnh trên trang tính của mình và thêm các dòng mã bên dưới vào cửa sổ trình soạn thảo Visual Basic Editor.
Mỗi đoạn mã dưới đây phải được nhập vào giữa dòng Private Sub CommandButton1_Click () và End Sub.
Để chạy các dòng mã này, bạn hãy bấm vào nút lệnh đã đặt trên trang tính.
Năm, Tháng, Ngày của một Ngày
Mã macro dưới đây sẽ lấy năm của một ngày. Để khai báo ngày, hãy sử dụng câu lệnh Dim. Để khởi tạo một ngày, hãy sử dụng hàm DateValue. Đoạn mã sẽ như sau:
Dim exampleDate As DateexampleDate = DateValue(“Jan 19, 2020”)MsgBox Year(exampleDate)
Đoạn mã đầy đủ sẽ là:
Private Sub CommandButton1_Click () Dim exampleDate As DateexampleDate = DateValue(“Jan 19, 2020”)MsgBox Year(exampleDate)End Sub
Khi đóng cửa sổ Visual Basic Editor và bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Lưu ý: Sử dụng Month và Day để lấy tháng và ngày của một ngày.
DateAdd
Để thêm một số ngày vào một ngày, hãy sử dụng hàm DateAdd. Hàm DateAdd có ba đối số. Điền vào “d” cho đối số đầu tiên để thêm ngày. Điền vào 3 để đối số thứ hai thêm 3 ngày. Đối số thứ ba đại diện cho ngày mà số ngày sẽ được thêm vào.
Đoạn mã sẽ như sau:
Dim firstDate As Date, secondDate As DatefirstDate = DateValue(“Jan 19, 2020”)secondDate = DateAdd(“d”, 3, firstDate)MsgBox secondDate
Khi đóng cửa sổ Visual Basic Editor và bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Lưu ý: Thay đổi “d” thành “m” để thêm một số tháng vào một ngày. Đặt con trỏ của bạn vào dòng DateAdd trong Visual Basic Editor và bấm phím F1 để được trợ giúp về các khoảng thời gian khác.
Ngày và giờ hiện tại
Để lấy ngày và giờ hiện tại, hãy sử dụng chức năng Now. Đoạn mã chi tiết sẽ như sau:
MsgBox Now
Khi bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Giờ, phút, giây
Nếu bạn muốn nhận giờ của một thời gian, hãy sử dụng hàm Hour với mã chi tiết như sau:
MsgBox Hour(Now)
Khi bấm vào nút lệnh để chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhận được kết quả như sau:
Lưu ý: Tương tự sử dụng hàm Minute và Second để lấy phút và giây của thời gian.
Giá trị thời gian
Hàm TimeValue sẽ chuyển đổi một chuỗi thành số serial thời gian. Số serial của thời gian là một số từ 0 đến 1. Ví dụ: Buổi trưa (nửa ngày) được biểu thị bằng 0,5. Do đó đoạn mã chi tiết sẽ như sau:
MsgBox TimeValue(“9:20:01 am”)
Kết quả trả về sẽ như hình dưới đây:
Bây giờ, để thấy rõ rằng Excel xử lý thời gian nội bộ dưới dạng số từ 0 đến 1, hãy thêm các dòng mã sau:
Dim y As Doubley = TimeValue(“09:20:01”)MsgBox y
Kết quả trả về sẽ là:
Sự kiện là các hành động do người dùng thực hiện để kích hoạt Excel VBA thực thi mã.
Thông báo sự kiện khi mở tệp Excel
Mã được thêm vào sự kiện mở sổ làm việc (Workbook Open Event) sẽ được Excel VBA thực thi khi bạn mở workbook.
Bước 1: Mở trình soạn thảo Visual Basic Editor bằng cách bấm nút Visual Basic trên tab Developer hoặc nhấn tổ hợp phím Alt+F11.
Bước 2: Kích đúp vào Workbook ở phía dưới mục Project Explorer của cột bên trái.
Bước 3: Chọn Workbook từ danh sách thả xuống bên trái. Chọn Open từ danh sách thả xuống bên phải.
Bước 4: Thêm dòng mã sau vào sự kiện mở sổ làm việc (Workbook Open Event):
MsgBox “Good Morning”
Bước 5: Sau đó đóng cửa sổ Visual Basic Editor và đóng tệp Excel. Rồi mở lại tệp Excel. Kết quả bảng thông báo sau sẽ hiển thị:
Thông báo sự kiện khi thay đổi trang tính (Worksheet)
Đoạn mã dưới đây được thêm vào sự kiện thay đổi trang tính (Worksheet Change Event) sẽ được Excel VBA thực thi khi bạn thay đổi một ô trên worksheet.
Bước 1: Mở trình soạn thảo Visual Basic Editor bằng cách bấm nút Visual Basic trên tab Developer hoặc nhấn tổ hợp phím Alt+F11.
Bước 2: Kích đúp vào một sheet (ví dụ Sheet1) ở phía dưới mục Project Explorer của cột bên trái.
Bước 3: Chọn Worksheet từ danh sách thả xuống bên trái. Chọn Change từ danh sách thả xuống bên phải.
Thêm các dòng mã sau vào Worksheet Change Event
Bước 4: Bây giờ sự kiện thay đổi trang tính sẽ chú ý tất cả các thay đổi trên Sheet1. Như trong trường hợp này, chúng tôi chỉ muốn Excel VBA làm điều gì đó nếu có gì đó thay đổi trong ô B2. Để thực hiện, hãy thêm các dòng mã sau:
If Target.Address = “$B$2” ThenEnd If
Bước 5: Như vậy chúng tôi chỉ muốn Excel VBA hiển thị một bảng thông báo nếu người dùng nhập giá trị lớn hơn 80. Để đạt được điều này, hãy thêm dòng mã sau giữa If và End If.
If Target.Value > 80 Then MsgBox “Goal Completed”
Bước 6: Trên Sheet1, nhập một số lớn hơn 80 vào ô B2.
Kết quả bạn sẽ nhận được bảng thông báo như hình dưới đây:
Array là một nhóm các biến. Trong Excel VBA, bạn có thể tham chiếu đến một biến (phần tử) cụ thể của mảng bằng cách sử dụng tên mảng và số chỉ mục.
Mảng một chiều (One-dimensional Array)
Để tạo mảng một chiều, hãy thực hiện các bước sau.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor. Trong đó đoạn mã dưới đây phải được nhập vào giữa dòng Private Sub CommandButton1_Click () và End Sub.
Dim Films(1 To 5) As StringFilms(1) = “Lord of the Rings”Films(2) = “Speed”Films(3) = “Star Wars”Films(4) = “The Godfather”Films(5) = “Pulp Fiction”MsgBox Films(4)
Kết quả khi bạn bấm vào nút lệnh trên trang tính, bảng thông báo sau sẽ hiển thị:
Giải thích: Dòng mã đầu tiên sẽ khai báo một mảng String với tên Films. Mảng bao gồm năm phần tử. Tiếp theo, chúng ta khởi tạo từng phần tử của mảng. Cuối cùng, hiển thị phần tử thứ tư bằng MsgBox.
Mảng hai chiều (Two-dimensional Array)
Để tạo mảng hai chiều, hãy thực hiện các bước sau. Lần này chúng ta sẽ đọc tên từ trang tính.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim Films(1 To 5, 1 To 2) As StringDim i As Integer, j As IntegerFor i = 1 To 5For j = 1 To 2Films(i, j) = Cells(i, j).ValueNext jNext iMsgBox Films(4, 2)
Kết quả khi bạn bấm vào nút lệnh trên trang tính, bảng thông báo sau sẽ hiển thị:
Giải thích: Dòng mã đầu tiên khai báo một mảng String với tên Films. Mảng có hai chiều. Nó bao gồm 5 hàng và 2 cột. Hai biến khác kiểu Integer được sử dụng cho Double Loop để khởi tạo từng phần tử của mảng. Cuối cùng sẽ hiển thị phần tử tại giao điểm của hàng 4 và cột 2.
Sự khác biệt giữa một hàm Function và một sub trong Excel VBA là một hàm có thể trả về một giá trị trong khi một sub thì không thể. Các hàm và sub trở nên rất hữu ích khi kích thước chương trình tăng lên.
Function
Nếu bạn muốn Excel VBA thực hiện một tác vụ trả về kết quả, bạn có thể sử dụng một hàm. Đặt một chức năng vào một moduln (Trong cửa sổ Visual Basic Editor, truy cập vào menu Insert, Module). Như trong ví dụ này, Function có tên Area.
Function Area(x As Double, y As Double) As DoubleArea = x * yEnd Function
Giải thích: Hàm này có hai đối số (kiểu Double) và một kiểu trả về (phần sau As cũng thuộc kiểu Double). Bạn có thể sử dụng tên của hàm (Area) trong mã của mình để cho biết bạn muốn trả về kết quả nào (ở đây là x*y).
Bây giờ bạn có thể tham chiếu đến hàm này (nói cách khác là gọi hàm) từ một nơi khác trong mã của mình bằng cách chỉ cần sử dụng tên của hàm và đưa ra một giá trị cho mỗi đối số.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim z As Doublez = Area(3, 5) + 2MsgBox z
Giải thích: Hàm trả về một giá trị vì vậy bạn phải ‘lấy’ giá trị này trong mã của mình. Bạn có thể sử dụng một biến khác (z) cho việc này. Tiếp theo, có thể thêm một giá trị khác vào biến này (nếu muốn). Cuối cùng, hiển thị giá trị bằng MsgBox.
Kết quả khi bạn bấm vào nút lệnh trên trang tính, bảng thông báo sau sẽ hiển thị:
Sub
Nếu bạn muốn Excel VBA thực hiện một số hành động, bạn có thể sử dụng một Sub. Đặt một Sub vào một modul (Trong cửa sổ Visual Basic Editor, truy cập vào menu Insert, Module). Như trong ví dụ này, Sub có tên Area.
Sub Area(x As Double, y As Double)MsgBox x * yEnd Sub
Giải thích: Sub này có hai đối số (kiểu Double). Bạn có thể tham chiếu đến sub này từ một nơi khác trong mã của bạn bằng cách sử dụng tên của sub và đưa ra một giá trị cho mỗi đối số.
Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Area 3, 5
Kết quả khi bạn bấm vào nút lệnh trên trang tính sẽ hiển thị như hình dưới đây:
Như vậy bạn có thể thấy sự khác biệt giữa Function và Sub. Function trả lại những giá trị 15. Chúng tôi đã thêm giá trị 2 vào kết quả này và hiển thị kết quả cuối cùng. Khi gọi Sub sẽ không còn quyền kiểm soát nhiều hơn kết quả (15) vì sub không thể trả về giá trị.
Excel là một trong những dạng đối tượng. Chúng tôi gọi đó là các đối tượng ứng dụng (Application object). Các đối tượng ứng dụng cho phép truy cập đến rất nhiều lựa chọn liên quan đến Excel .
WorksheetFunction
Bạn có thể sử dụng thuộc tính WorksheetFunction trong Excel VBA để truy cập các hàm Excel.
Ví dụ để đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Range(“A3”).Value = Application.WorksheetFunction.Average(Range(“A1:A2”))
Kết quả khi bạn bấm vào nút lệnh trên trang tính, Excel VBA sẽ tính giá trị trung bình của các giá trị trong ô A1 và ô A2 và đặt kết quả vào ô A3.
Lưu ý: Thay vì Application.WorksheetFunction.Average, chỉ cần sử dụng WorksheetFunction.Average. Nếu bạn nhìn vào thanh công thức, có thể thấy rằng chính công thức đó không được chèn vào ô A3. Để chèn chính công thức vào ô A3, hãy sử dụng dòng mã sau:
Range(“A3”).Value = “=AVERAGE(A1:A2)”
ScreenUpdating
Đôi khi bạn có thể thấy hữu ích khi tắt ScreenUpdating trong khi thực thi mã. Kết quả là mã của bạn sẽ chạy nhanh hơn.
1. Ví dụ đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Dim i As IntegerFor i = 1 To 10000Range(“A1”).Value = iNext i
Khi bạn bấm vào nút lệnh trên trang tính, Excel VBA sẽ hiển thị mỗi giá trị một phần nhỏ của giây và điều này có thể mất một chút thời gian.
2. Nhưng để tăng tốc quá trình xử lý, hãy cập nhật mã như sau.
Dim i As Integer
Application.ScreenUpdating = FalseFor i = 1 To 10000Range(“A1”).Value = iNext iApplication.ScreenUpdating = True
Kết quả là mã của bạn sẽ chạy nhanh hơn nhiều và bạn sẽ chỉ thấy kết quả cuối cùng (10000).
DisplayAlerts
Bạn có thể hướng dẫn Excel VBA không hiển thị cảnh báo trong khi thực thi mã.
1. Ví dụ đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
ActiveWorkbook.Close
Khi bạn bấm vào nút lệnh trên trang tính, Excel VBA sẽ đóng tệp Excel của bạn và yêu cầu bạn lưu các thay đổi bạn đã thực hiện.
2. Để hướng dẫn Excel VBA không hiển thị cảnh báo này trong khi thực thi mã, hãy cập nhật mã sau vào cửa sổ Visual Basic Editor.
Application.DisplayAlerts = FalseActiveWorkbook.CloseApplication.DisplayAlerts = True
Do đó, Excel VBA đóng tệp Excel của bạn mà không yêu cầu bạn lưu các thay đổi bạn đã thực hiện. Mọi thay đổi đều bị mất.
Tính toán
Theo mặc định, tính toán được đặt thành tự động. Do đó, Excel sẽ tự động tính toán lại bảng tính mỗi khi giá trị ảnh hưởng đến công thức thay đổi. Nếu bảng tính của bạn chứa nhiều công thức phức tạp, bạn có thể tăng tốc macro của mình bằng cách thiết lập tính toán thành thủ công.
1. Ví dụ: đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau vào cửa sổ Visual Basic Editor:
Application.Calculation = xlCalculationManual
Như vậy, khi bạn nhấp vào nút lệnh trên trang tính, Excel VBA sẽ đặt tính toán thành thủ công.
2. Bạn có thể xác minh điều này bằng cách truy cập vào menu File > Options > Formulas.
3. Bây giờ khi bạn thay đổi giá trị của ô A1, giá trị của ô B1 sẽ không được tính lại.
Bạn có thể tính toán lại bảng tính của mình theo cách thủ công bằng cách nhấn F9.
4. Trong hầu hết các tình huống, bạn sẽ thiết lập tính toán thành tự động trở lại khi kết thúc mã của mình. Chỉ cần thêm dòng mã sau để đạt được điều này.
Application.Calculation = xlCalculationAutomatic
Trong phần này của bài viết, Gitiho sẽ hướng dẫn các bạn tìm hiểu cách tạo ActiveX Controls, chẳng hạn như nút lệnh, hộp văn bản, hộp danh sách …Để tạo ActiveX Controls, hãy thực hiện các bước sau.
Bước 1: Trên tab Developer, nhấn Insert.
Bước 2: Trong nhóm tính năng ActiveX Controls, hãy bấm vào nút Command Button trong menu xổ xuống để chèn nút lệnh điều khiển.
Bước 3: Kích giữ chuột trái và kéo để tạo một nút lệnh trên sheets bất kỳ trong file Excel, nơi bạn muốn đặt nút lệnh.
Bước 4: Kích chuột phải vào nút lệnh (đảm bảo nút Design Mode được chọn).
Bước 5: Chọn tùy chọn View Code trong menu xổ xuống. Trình soạn thảo Visual Basic xuất hiện.
Lưu ý: Bạn có thể thay đổi chú thích và tên của một điều khiển bằng cách kích chuột phải vào điều khiển (đảm bảo Design Mode được chọn) và chọn tùy chọn Properties. Thay đổi chú thích của nút lệnh thành ‘Apply Blue Text Color’. Bây giờ, chúng ta sẽ đặt tên CommandButton1 cho nút bấm.
Bước 6: Thêm dòng mã được hiển thị bên dưới giữa Private Sub CommandButton1_Click () và End Sub.
Bước 7: Chọn phạm vi B2:B4 và bấm vào nút lệnh (đảm bảo nút Design Mode trên thanh công cụ ribbon được bỏ chọn).
Kết quả sẽ hiển thị như hình dưới đây:
Ở phần này Gitiho sẽ hướng dẫn bạn cách tạo UserForm trong VBA. Sử dụng UserForm trong VBA sẽ giúp bạn tạo một ứng dụng đúng nghĩa. Với giao diện, các sự kiện và lệnh được liên kết với đối tượng trong UserForm VBA, bạn có thể tạo được một ứng dụng có giao diện thực hiện theo các yêu cầu được lập trình, giống như hình dưới đây.
Chèn Controls
Để thêm Controls vào UserForm, hãy thực hiện các bước sau.
Bước 1: Mở trình soạn thảo Visual Basic Editor bằng cách, trên tab Developer, bấm nút Visual Basic hoặc nhấn tổ hợp phím Alt+F11. Nếu Project Explorer không hiển thị, hãy truy cập vào menu View > Project Explorer.
Bước 2: Nhấn phím Insert > UserForm. Nếu Toolbox không tự động xuất hiện, truy cập vào menu View > Toolbox. Màn hình của bạn sẽ được thiết lập như bên dưới.
Trong đó:
(1): Khung tạo giao diện người dùng. Nơi bạn có thể bố trí các đối tượng tương tác, hiện thị từ hộp công cụ Toolbox (2)
(2): Các đối tượng để tạo giao diện như Label (nhãn đặt tên), TextBox (ô nhập liệu), ListBox (danh sách) …
Bước 3: Chèn các control được liệt kê trong bảng bên dưới. Khi điều này được hoàn thành, kết quả sẽ phù hợp với hình ảnh của Userform được hiển thị trước đó.
Ví dụ: Để tạo điều khiển hộp văn bản bằng cách kích vào TextBox từ Toolbox. Tiếp theo, bạn có thể kéo một hộp văn bản trên Userform. Khi bạn đến khung Car, hãy nhớ vẽ khung này trước khi bạn đặt hai nút tùy chọn vào đó.
Bước 4: Thay đổi tên và chú thích của các control theo bảng dưới đây. Tên (Name) được sử dụng trong mã VBA Excel. Phụ đề (Captions) là những thứ xuất hiện trên màn hình của bạn. Bạn nên thay đổi tên của các control. Điều này sẽ làm cho mã của bạn dễ đọc hơn. Để thay đổi tên và chú thích của các control, truy cập vào menu View > Properties Window và kích vào từng control riêng lẻ một.
Lưu ý: Hộp tổ hợp (combo box) là một danh sách thả xuống từ đó người dùng có thể chọn một mục hoặc điền vào lựa chọn của riêng mình. Nhưng chỉ có thể chọn một trong các nút tùy chọn.
Hiển thị Userform
Để hiển thị Userform, hãy đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:
Private Sub CommandButton1_Click()DinnerPlannerUserForm.ShowEnd Sub
Bây giờ chúng ta sẽ tạo Sub UserForm_Initialize. Khi bạn sử dụng phương thức Show cho UserForm thì Sub này sẽ tự động được thực thi.
Bước 1: Mở trình soạn thảo Visual Basic Editor bằng cách, truy cập thẻ Developer, bấm nút Visual Basic hoặc nhấn tổ hợp phím Alt+F11.
Bước 2: Kích chọn Worksheet ở phía dưới mục Project Explorer của cột bên trái, kích chuột phải vào DinnerPlannerUserForm và chọn View Code.
Bước 3: Chọn Userform từ danh sách thả xuống bên trái. Tiếp theo chọn Initialize từ danh sách thả xuống bên phải.
Bước 4: Nhập vào các dòng mã sau:
Private Sub UserForm_Initialize()’Empty NameTextBoxNameTextBox.Value = “”‘Empty PhoneTextBoxPhoneTextBox.Value = “”‘Empty CityListBoxCityListBox.Clear’Fill CityListBoxWith CityListBox.AddItem “San Francisco”.AddItem “Oakland”.AddItem “Richmond”End With’Empty DinnerComboBoxDinnerComboBox.Clear’Fill DinnerComboBoxWith DinnerComboBox.AddItem “Italian”.AddItem “Chinese”.AddItem “Frites and Meat”End With’Uncheck DataCheckBoxesDateCheckBox1.Value = FalseDateCheckBox2.Value = FalseDateCheckBox3.Value = False’Set no car as defaultCarOptionButton2.Value = True’Empty MoneyTextBoxMoneyTextBox.Value = “”‘Set Focus on NameTextBoxNameTextBox.SetFocusEnd Sub
Giải thích: Hộp văn bản được làm trống, hộp danh sách và hộp tổ hợp được lấp đầy, hộp kiểm không được chọn … , v.v.
Gán các Macro
Như vậy chúng ta đã tạo được phần đầu của UserForm. Mặc dù có vẻ đã sẵn sàng, nhưng khi chúng ta bấm vào các nút lệnh trên UserForm lại không có gì xảy ra.
Bước 1: Mở Trình soạn thảo Visual Basic.
Bước 2: Trong khung Project Explorer bên trái, kích đúp vào mục DinnerPlannerUserForm.
Bước 3: Kích đúp vào nút Money spin.
Bước 4: Nhập vào các dòng mã sau:
Private Sub MoneySpinButton_Change()MoneyTextBox.Text = MoneySpinButton.ValueEnd Sub
Giải thích: Dòng mã này cập nhật hộp văn bản khi bạn sử dụng nút Spin.
Bước 5: Kích đúp vào nút OK.
Bước 6: Tiếp tục nhập vào các dòng mã sau:
Private Sub OKButton_Click()Dim emptyRow As Long’Make Sheet1 activeSheet1.Activate’Determine emptyRowemptyRow = WorksheetFunction.CountA(Range(“A:A”)) + 1’Transfer informationCells(emptyRow, 1).Value = NameTextBox.ValueCells(emptyRow, 2).Value = PhoneTextBox.ValueCells(emptyRow, 3).Value = CityListBox.ValueCells(emptyRow, 4).Value = DinnerComboBox.ValueIf DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.CaptionIf DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & ” ” & DateCheckBox2.CaptionIf DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & ” ” & DateCheckBox3.CaptionIf CarOptionButton1.Value = True ThenCells(emptyRow, 6).Value = “Yes”ElseCells(emptyRow, 6).Value = “No”End IfCells(emptyRow, 7).Value = MoneyTextBox.ValueEnd Sub
Giải thích: đầu tiên, chúng tôi kích hoạt Sheet1. Tiếp theo, xác định emptyRow. Các biến emptyRow là hàng trống đầu tiên và tăng lên mỗi khi một bản ghi được thêm vào. Cuối cùng, chúng tôi chuyển thông tin từ Userform sang các cột cụ thể của emptyRow.
Bước 7: Kích đúp vào nút Clear.
Bước 8: Tiếp tục thêm vào các dòng mã sau:
Private Sub ClearButton_Click()Call UserForm_InitializeEnd Sub
Giải thích: Dòng mã này gọi Sub UserForm_Initialize khi bạn bấm vào nút Clear.
Bước 9: Kích đúp vào nút Cancel.
Bước 10: Nhập vào dòng mã sau:
Private Sub CancelButton_Click()Unload MeEnd Sub
Giải thích: Dòng mã này sẽ đóng Userform khi bạn nhấp vào nút Cancel.
Kiểm tra UserForm
Đóng cửa sổ Visual Basic Editor và nhập các nhãn được hiển thị bên dưới vào hàng 1 và kiểm tra các UserForm.
Kết quả sẽ hiển thị như hình dưới đây:
Nếu bạn đã đọc tới đây thì cảm ơn bạn rất nhiều. Chắc hẳn bài viết này đã giúp ích cho bạn giải quyết vấn đề trong công việc của mình. Hãy tiếp tục theo dõi chúng tôi trong các bài viết tiếp theo nhé!
KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ
Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO
0 thảo luận
Lập trình VBA trong Excel – Các bước lập trình từ A-Z
VBA là viết tắt của Visual Basic for Applications giúp cho phần mềm excel thông thường trở nên linh hoạt; giúp giải các bài toán phức tạp mà phần mềm excel cơ bản không giải quyết được. Học lập trình VBA giúp trong Excel giúp bạn tự động hóa các nhiệm vụ được giao một cách nhanh nhất; thay vì dùng các phương pháp truyền thống. Dù bạn đã thành thạo excel hay là người mới bắt đầu; thì việc học cách lập trình VBA luôn hữu ích và cần thiết. Dưới đây là bài viết chứa những thông tin hữu ích về lập trình VBA trong excel cho người mới bắt đầu.
Tham khảo khóa học “VBA Excel toàn tập từ cơ bản đến nâng cao”
Giáo trình 61 bài giảng
Thời lượng: 11 giờ 57 phút
Giảng viên: Đinh Hồng Lĩnh
Xem toàn bộ: VBA Excel toàn tập từ cơ bản đến nâng cao
Khóa học vba từ cơ bản đến nâng cao này có gì đặc biệt?
Bạn đang sử dụng Excel như một phần không thể thiếu trong công việc của mình. Tuy nhiên, Excel vẫn chưa thể đáp ứng được tất cả nhu cầu của bạn. Bạn vẫn phải làm rất nhiều công việc lặp đi lặp lại một cách thủ công. Và với số lượng dữ liệu lớn, bạn vẫn ước có một công cụ gì đó giúp bạn tự động hóa được toàn bộ công việc này. VBA Excel sẽ giúp bạn thực hiện nó một cách dễ dàng. Thấu hiểu ý nghĩa đó, giảng viên Đinh Hồng Lĩnh hợp tác cùng Unica xuất bản khóa học ” VBA Excel toàn tập từ cơ bản đến nâng cao”.
Điểm đặc biệt của khóa học là lộ trình được thiết kế theo phương pháp L.I.P.E, cung cấp đầy đủ giáo trình từ lý thuyết đến các bài tập thực sau mỗi bài, các bài kiểm tra sau từng chương và bài thi hết khóa học, giúp học viên trau dồi kỹ năng ngay sau khi học.
Mục tiêu khóa học
Khóa học được Trưởng phòng phát triển hệ thống, công ty cổ phần phát triển công nghệ 3T – Đinh Hồng Lĩnh biên soạn và giảng dạy. Thầy đã có hơn 5 năm kinh nghiệm trong giảng dạy và đào tạo trực tuyến E – Learning, đặc biệt trong lĩnh vực dạy tin học văn phòng. Kết thúc khóa học, học biên sẽ được trang bị những kiến thức bổ ích như sau:
– Nắm được các kiến thức cơ bản từ cơ bản đến nâng cao kiến thức về lập trình VBA trong Excel.
– Hướng dẫn cách sử dụng: Macro, Variable, Sub, Fuction, Userform, vòng lặp For, lệnh điều khiển IF ELSE…
– Sử dụng được các hộp thoại tương tác sinh động với người dùng.
– Tự làm được các Form đăng nhập, quản lý nhân viên, khách hàng, hóa đơn.
Trong suốt quá trình học, bạn sẽ được trợ giúp trực tiếp từ giảng viên, trả lời thắc mắc trong hệ thống diễn đàn lớp học VBA excel. Đây là một công cụ tuyệt vời mà Microsoft bổ sung cho không chỉ cho việc học Excel, mà toàn bộ các công cụ Office như học Word khác để giúp người dùng như bạn tự mình tạo ra được các hàm dành cho riêng bạn, tự động hóa các công việc lặp lại với dữ liệu lớn, tạo ra được các Form nhập liệu quản lý phức tạp theo ý bạn,… và rất nhiều thứ khác nữa.
Hãy ghé đọc và tham khảo thêm chứng chỉ tin học IC3 trên Unica bạn nhé.
Trên đây là hướng dẫn học vba excel của Unica cũng như phần giới thiệu khóa học VBA căn bản. Mong rằng bạn sẽ biết thêm những kiến thức về lĩnh vực này. Nếu có bất kỳ câu hỏi nào, bạn hãy để lại dưới phần bình luận nhé. Chúng tôi sẽ giải đáp trong thời gian ngắn nhất. Cảm ơn bạn đã theo dõi bài viết này.
Tags: Excel Vba
-
Unica
(0)
198,000đ268,000đ
-
Unica
(41)
6044 học viên
499,000đ600,000đ
Tổng quan về VBA cơ bản cho người mới bắt đầu
Nếu bạn đang tìm hiểu về VBA, hãy tham khảo ngay nội dung dưới đây. Ở phần này, chúng tôi sẽ giới thiệu VBA là gì, những điều cơ bản về VBA, cách mở trình soạn thảo VBA, cách viết code VBA cũng như nhiều kiến thức liên quan khác.
VBA là gì?
VBA là một ngôn ngữ lập trình được viết bởi Microsoft và được tích hợp sẵn trong Excel. VBA có thể được sử dụng để tạo các macro, tức là các chương trình được lặp lại để thực hiện các nhiệm vụ đơn giản hoặc phức tạp trong Excel. VBA cũng có thể được sử dụng để tạo các form, tức là các giao diện người dùng được thiết kế để nhập và xuất dữ liệu từ Excel.
Tìm hiểu về VBA trong Excel
Những điều cơ bản về VBA trong Excel
VBA có hai loại là Visual Basic và Visual Basic for Applications (VBA). Visual Basic là một ngôn ngữ lập trình khác được sử dụng để thiết kế các chương trình Windows Forms hoặc ASP.NET. Visual Basic for Applications (VBA) là một phiên bản của Visual Basic được chỉnh sửa để phù hợp với Excel.
Ngoài ra, VBA còn có ActiveX và MFC (Microsoft Foundation Class). ActiveX là một giao diện cho phép bạn giao tiếp với các ứng dụng khác như Word, PowerPoint, Outlook,… MFC là một giao diện cho phép bạn sử dụng các thành phần của Windows như menu, thanh công cụ, thanh trượt,…
Làm sao để mở trình soạn thạo VBA trong Excel?
Để mở trình soạn thạo VBA trong Excel, bạn có thể làm theo hướng dẫn học vba excel dưới đây:
– Bước 1: Mở hộp thoại Ribbons > Chọn Customize the Ribbons.
– Bước 2. Chọn Developer trong Excel Options rồi nhấn OK.
Hướng dẫn học VBA excel
Tất cả chương trình trong VBA phải bắt đầu bằng “Sub” và kết thúc bằng “End sub”. Ở đây tên là tên bạn muốn gán cho chương trình của bạn. Trong khi sub là viết tắt của một chương trình con mà chúng ta sẽ tìm hiểu trong phần sau của hướng dẫn.
– Sub name().
– End Sub
Bây giờ chúng ta sẽ tạo một chương trình VBA cơ bản hiển thị hộp nhập liệu để hỏi tên người dùng sau đó hiển thị thông báo lời chào.
Hướng dẫn này giả định rằng bạn đã hoàn thành hướng dẫn về Macros trong excel và đã bật tab Developer trong excel.
– Tạo một danh mục mới.
– Lưu nó trong một định dạng bảng tính kích hoạt macro excel * .xlsm
– Nhấp vào tab DEVELOPER.
– Nhấp vào hộp thả xuống INSERT dưới thanh điều khiển.
– Chọn một nút lệnh như trong hình dưới đây.
Hướng dẫn học VBA excel
Nhập nút lệnh ở bất cứ vị trí nào trên bảng tính thì cửa sổ Assign Marco sẽ hiện ra như hình dưới đây:
Hướng dẫn học VBA excel
– Đổi tên macro thành btnHelloWorld_Click.
– Bấm vào nút mới.
– Bạn sẽ nhận được code như hình sau.
Hướng dẫn học VBA excel
Nhập mã lệnh sau:
– Tên Dim dưới dạng Chuỗi.
– Tên = InputBox (“Nhập tên của bạn”).
– MsgBox “Xin chào” + tên.
Giải thích một chút:
“Dim name as String” tạo ra một biến gọi là tên. Biến sẽ chấp nhận văn bản, số và các ký tự khác vì chúng tôi đã định nghĩa nó là một chuỗi.
“Name = InputBox (” Nhập tên của bạn “)” gọi hàm được tích hợp InputBox hiển thị một cửa sổ với chú thích Nhập tên của bạn. Tên đã nhập sau đó được lưu trữ trong biến tên.
” MsgBox” Hello “+ name” gọi hàm MsgBox tích hợp hiển thị Hello và tên đã nhập.
Kết quả như sau:
Hướng dẫn học VBA excel
Đóng cửa sổ code
Nhấp chuột phải vào nút 1 và chọn chỉnh sửa văn bản
Nhập: Say Hello
Bấm vào Say Hello
Bạn sẽ nhận được kết quả sau:
Hướng dẫn học VBA excel
Nhập tên của bạn ví dụ là Jordan => Bạn sẽ nhận được hộp thông báo sau
Hướng dẫn học VBA excel
Vừa rồi là những điều căn bản nhất về VBA và một số điều cơ bản bạn cần biết. Tuy nhiên nó là cả một ngôn ngữ lập trình sâu rộng. Để có thể học Kế toán online và học chuyên sâu hơn về hệ thống Excel nâng cao, các bạn có thể tham gia một trong các khóa học Excel nâng cao có tên “VBA Excel toàn tập từ cơ bản đến nâng cao” của giảng viên Đinh Hồng Lĩnh trên UNICA để ứng dụng ngay trong công việc hiệu quả.
Công cụ viết code VBA excel
Để viết code VBA trong excel, bạn có thể sử dụng các công cụ như IntelliSense, Editor, Run và Debug. Trong phần hướng dẫn học vba excel dưới đây chúng tôi sẽ giới thiệu chi tiết hơn:
– Công cụ IntelliSense: Là một tính năng giúp bạn đọc được ý nghĩa và giải thích của các từ khóa hoặc biến khi nhập vào khung soạn thảo.
– Công cụ Editor: Là một công cụ cho phép bạn chỉnh sửa, thêm, xóa hoặc sắp xếp các khối mã VBA trong Excel.
– Công cụ Run: Là một công cụ cho phép bạn chạy, dừng, giảm dần hoặc tăng dần các macro trong Excel.
– Công cụ Debug: Là một công cụ cho phép bạn kiểm tra và sửa lỗi trong code VBA trong Excel.
Công cụ viết code VBA
Các cấu trúc thường gặp trong lập trình VBA
Khi sử dụng vba trong excel, bạn sẽ bắt gặp một số cấu trúc phổ biến như là:
– Cấu trúc If…Then…Else: Là một cấu trúc dùng để kiểm tra điều kiện và thực hiện các hành động khác nhau tùy theo điều kiện đó.
– Cấu trúc Select Case: Là một cấu trúc dùng để chọn và thực hiện các hành động khác nhau tùy theo giá trị của một biến.
– Cấu trúc For…Next: Là một cấu trúc dùng để lặp lại một hành động nhiều lần với một biến duy nhất.
– Cấu trúc Do…Loop: Là một cấu trúc dùng để lặp lại một hành động nhiều lần với hai biến là biến trong và biến ngoài.
– Cấu trúc While…Wend: Là một cấu trúc dùng để lặp lại một hành động nhiều lần với một biến duy nhất, miễn là điều kiện đó vẫn đúng.
Cấu trúc thường gặp trong VBA
Lập trình sự kiện trong VBA
Sự kiện là các sự kiện xảy ra trong Excel, như nhấp vào nút, nhập dữ liệu, chọn danh sách,… Bạn có thể sử dụng sự kiện để kích hoạt các macro hoặc form khi xảy ra sự kiện đó. Để lập trình sự kiện trong VBA, bạn có thể làm theo các bước sau:
– Bước 1: Chọn tab Developer (Nút Tiến hành) ở thanh công cụ của Excel.
– Bước 2: Chọn tab Visual Basic (Nút Tiến hành) ở thanh công cụ của Excel.
– Bước 3: Chọn tab Insert (Nút Thêm) ở thanh công cụ của Excel.
– Bước 4: Chọn tab Module (Nút Module) trong danh sách Insert.
– Bước 5: Nhập mã VBA vào khung soạn thảo.
Lập trình sự kiện trong VBA
Kỹ thuật khai báo và sử dụng biến trong lập trình VBA
Biến là các giá trị được gán cho các từ khóa hoặc số nguyên trong code VBA. Biến giúp bạn lưu trữ và quản lý các thông tin liên quan đến macro hoặc form. Để khai báo và sử dụng biến trong lập trình VBA, bạn có thể làm theo các bước sau:
– Bước 1: Đặt tên cho biến bằng cách nhập từ khóa hoặc số nguyên vào khung soạn thảo. Tên biến phải bắt đầu bằng chữ cái và không được quá 255 ký tự.
– Bước 2: Gán giá trị cho biến bằng cách nhập từ khóa hoặc số nguyên vào khung soạn thảo. Giá trị biến phải được gán vào khi khai báo biến và không được thay đổi sau đó.
– Bước 3: Sử dụng biến bằng cách nhập từ khóa hoặc số nguyên vào khung soạn thảo. Từ khóa hoặc số nguyên biến phải được sử dụng để thực hiện các hành động trong code VBA.
Kỹ thuật khai báo biến trong VBA
Các lệnh VBA trong Excel
Lệnh VBA là các câu lệnh được viết bằng ngôn ngữ VBA để thực hiện các nhiệm vụ trong Excel. Lệnh VBA có thể được chia thành các loại sau:
– Lệnh chính: Là các câu lệnh cơ bản như If, Select Case, For, Next, Do, Loop, While, Wend,…
– Lệnh hỗ trợ: Là các câu lệnh hỗ trợ như MsgBox, Range, Cells, Sheets, Workbooks,…
– Lệnh đặt tên: Là các câu lệnh đặt tên cho các biến, macro, form, module hoặc workbook.
– Lệnh đọc và ghi: Là các câu lệnh đọc và ghi dữ liệu từ và vào các ô hoặc sheet trong Excel.
– Lệnh kiểm tra và sửa lỗi: Là các câu lệnh kiểm tra và sửa lỗi trong code VBA khi chạy macro hoặc form.
Các câu lệnh trong VBA
Hướng dẫn VBA Excel: Tạo nút chuyển đổi
Để giúp bạn quen với VBA, trong bài viết này, chúng ta sẽ thực hiện một dự án VBA Excel đơn giản: tạo một nút sẽ chuyển đổi giá trị trong một ô đã chọn từ USD sang GBP (đồng bảng Anh).
Dự án này có hai bước. Bước đầu tiên là chuyển đổi giá trị số từ USD sang GBP bằng cách nhân số USD với 1,22, tỷ giá hối đoái giả định. Bước thứ hai là thay đổi định dạng trong ô từ USD sang GBP.
Khi bạn nhấp vào nút, giá trị của ô đã chọn sẽ được nhân với tỷ giá hối đoái và ký hiệu đô la sẽ thay đổi thành ký hiệu đồng bảng Anh.
2.1 Truy cập Developer Controls trong Excel
Trước khi đi sâu vào VBA, có thể bạn cần phải mở Excel và điều chỉnh cài đặt để hiển thị tab Developer nơi có các tính năng bạn cần truy cập để sử dụng VBA Excel:
- Mở Excel.
- Chuyển đến menu File.
- Nhấp vào Options ở cuối màn hình để mở cửa sổ Tùy chọn Excel.
- Trong Options, chuyển đến tab Customize Ribbon.
- Dưới Main Tabs, nhấp vào ô Developer .
Ngoài ra, bạn cũng có thể nhấp chuột phải vào dải băng Excel và chọn Customize Ribbon.
>>> Đọc ngay: Làm thế nào để trở thành Chuyên gia Microsoft Excel vào năm 2023?
2.2 Tạo một nút
Để tạo công cụ chuyển đổi tiền tệ, trước tiên chúng ta cần chèn phần tử nút. Trong bước tiếp theo, chúng ta sẽ đính kèm code VBA Excel của mình vào nút đó.
- Trong bảng tính Excel của bạn, hãy chuyển đến tab Developer (Nhà phát triển).
- Trong phần Controls (Điều khiển), nhấp vào Insert (Chèn).
- Chọn ActiveX Command Button (Nút lệnh ActiveX). Đây là tùy chọn đầu tiên trong ActiveX Controls (Điều khiển ActiveX).
- Vẽ một nút trên bảng tính.
Nút này sẽ có chú thích là CommandButton1 theo mặc định. Tiếp theo hãy:
- Chọn nút.
- Nhấp chuột phải vào nó và sau đó chọn Properties (Thuộc tính) để hiển thị Cửa sổ Thuộc tính.
- Thay đổi (Name) (tên) thành một cái gì đó đáng nhớ hơn. Lưu ý rằng đây không phải là chữ sẽ hiển thị trên nút, mà là cách nút sẽ được gọi trong code VBA của bạn. Trong ví dụ này, chúng ta sẽ đổi tên thành convertButton .
- Thay đổi Caption (Chú thích) thành nội dung bạn muốn hiển thị trên nút. Chúng ta sẽ sử dụng USD to GBP.
Bạn cũng có thể thay đổi phông chữ và thêm một số style cho nút của mình thông qua cùng một cửa sổ.
>>> Đọc ngay: Cách sử dụng hàm FIND trong Excel
2.3 Thêm một số code
Viết code bằng VBA Excel diễn ra trong một môi trường riêng biệt với giao diện Excel tiêu chuẩn. Để truy cập nó, hãy đảm bảo Design Mode (Chế độ thiết kế) đang hoạt động trong tab Developer (Nhà phát triển), sau đó bấm đúp vào nút. Bạn sẽ thấy một cửa sổ như sau:
Phần đầu và phần cuối của code đã có sẵn—hai đoạn văn bản màu xanh lam ở trước và sau hàm của bạn, trong khi phần văn bản màu đen cho biết hành động sẽ diễn ra khi người dùng nhấp vào nút. Nếu bạn chọn một tên khác cho convertButton, bạn sẽ thấy tên đó trong cửa sổ này.
Để thực hiện quy trình chuyển đổi tiền tệ, chúng ta sẽ sử dụng các dòng code sau giữa hai dòng đã được tạo bởi Excel:
Dim R As Range\nDim W As Range\nSet W = Selection\nFor Each R In W\nR.Value = (R.Value * 1.22)\nR.NumberFormat = "£ 0.00 "\nNext
Đoạn code này khai báo (declare) hai biến R và W là các phạm vi (parameter). Bạn có thể thay đổi hai chữ cái này thành bất cứ thứ gì bạn muốn, miễn là bạn nhất quán trong toàn bộ đoạn code.
Sau đó, mã đặt biến W là Selection (Lựa chọn). Điều này có nghĩa là W là các ô được chọn trong bảng tính. Câu lệnh For Each tuyên bố rằng mã bên dưới câu lệnh sẽ chạy cho mọi R trong W, nghĩa là cho mọi ô trong phạm vi được chọn .
Tiếp theo, hàm chính xuất hiện. Giá trị trong ô được nhân với 1,22 (tỷ giá hối đoái từ GBP sang USD), sau đó định dạng ô được thay đổi để đại diện cho GBP. Cuối cùng, câu lệnh Next (Tiếp theo) chỉ ra rằng code (phép nhân và thay đổi định dạng) cũng sẽ chạy cho ô tiếp theo trong phạm vi, tức là R tiếp theo trong W.
Giao diện của nó trong cửa sổ VBA Excel trông như sau:
Nếu bạn đã đặt tên khác cho nút của mình hoặc sử dụng các tên khác không phải là R và W trong code, hãy nhớ đổi những tên này thành tên trong code của bạn. Nếu không, code sẽ không hoạt động.
Khi code của bạn đã được thiết lập xong, hãy đóng trình soạn thảo VBA. Các thay đổi của bạn sẽ tự động được lưu.
>>> Đọc ngay: Cách tự động hóa tác vụ với Macro Recorder trong Excel
2.4 Kiểm tra công việc của bạn
Bây giờ bạn cần tắt Design Mode để dừng bất kỳ sửa đổi nào khác đối với nút và làm cho nút hoạt động.
Tiếp theo, chọn một ô hoặc một dải ô, sau đó nhấp vào nút để xem nó hoạt động như thế nào. Hy vọng rằng bạn sẽ thấy giá trị tăng thêm 1,22, nghĩa là quá trình chuyển đổi tiền tệ đã được thực hiện chính xác.
>>> Đọc ngay: Cách sử dụng hàm VSTACK và HSTACK trong Excel
VBA Excel là gì?
VBA (Visual Basic for Application) là một dạng tích hợp của Visual Basic 6 trong các chương trình Microsoft Office. VBA có sẵn trong các ứng dụng Office như Word, PowerPoint và Excel.
VBA cho phép bạn đạt được những thứ mà thông thường không thể làm được với các tính năng phổ biến của Excel. Với VBA, bạn có thể thao tác với giao diện của Excel, thêm các nút chức năng và thậm chí đặt các hàm của riêng bạn.
VBA Excel sử dụng ngôn ngữ lập trình Visual Basic. Thông qua ngôn ngữ này và với một chút kiến thức về lập trình, bạn có thể có trải nghiệm vượt ra ngoài ranh giới của Excel.
>>> Đọc ngay: Cách sử dụng hàm ISNUMBER trong Excel
Nên chuẩn bị kiến thức gì để tự học VBA trong Excel?
Trước hết chúng ta cần có một tâm thế quyết tâm theo đuổi học công cụ này cho bằng được, tập trung ngồi vạch ra kế hoạch, lên mạng tìm hiểu xem lộ trình tự học như thế nào.
Để có thể học VBA Excel, trước tiên bạn cần phải có một chút kiến thức về Excel. Việc nắm cơ bản kiến thức về Excel sẽ giúp cho quá trình học của bạn hiệu quả hơn rất nhiều.
Bạn có thể tham khảo một vài kiến thức cơ bản của VBA trong Excel bạn cần phải biết như:
- Tạo một macros: macros có tác dụng tự động hóa một nhiệm vụ với nhiều thao tác, khi muốn thực hiện các thao tác đó, bạn chỉ cần gọi macros là xong.
- Msgbox: Thông báo cho người dùng biết các thao tác thực hiện các công việc
- Workbook và worksheet object: Đề cập phạm vi áp dụng các lệnh VBA trong toàn bộ workbook hay worksheet.
- Range object: là đại diện một đối tượng trên bảng tính của bạn, đây là đối tượng quan trọng nhất trong VBA Excel
- Variables: đây là một loại biến
- If then Statements: hàm so sánh điều kiện
- Loop: Vòng lặp – cho phép lặp lại thao tác trong một phạm vi
- Userform: là các nút bấm, box nhập liệu..dùng để thiết kế giao diện
- Events: sự kiện trong Excel là các hành động của người dùng, dùng code để thực hiện thao tác sau khi có các sự kiện sẵn
- Function & sub: function trả về các giá trị còn sub thì không trả về giá trị
Hướng dẫn học VBA excel thông qua Record Macro
Record Macro là một tính năng giúp bạn tự học vba excel cơ bản một cách dễ dàng và nhanh chóng. Record Macro cho phép bạn quay lại các hành động mà bạn đã thực hiện trong Excel khi bạn chạy macro. Bạn có thể xem lại các hành động này và sao chép mã VBA của chúng để sử dụng trong code của bạn. Để hiểu hơn về Macro, mời bạn theo dõi nội dung dưới đây:
Macro là gì?
Macro là một macro được tạo ra bởi bạn khi bạn sử dụng Record Macro. Một macro là một chương trình được lặp lại để thực hiện các nhiệm vụ đơn giản hoặc phức tạp trong Excel. Một macro có thể được gọi bằng cách nhấn tổ hợp phím Alt + F8 hoặc chọn tab Developer > Macros > Macros.
Macro là một macro được tạo ra bởi bạn khi bạn sử dụng Record Macro
>>> Xem thêm: Cách tạo mẫu bảng theo dõi công nợ bằng excel cho người mới
Cách Record Macro
Để Record Macro, bạn có thể làm theo các bước sau:
– Bước 1: Chọn tab Developer (Nút Tiến hành) ở thanh công cụ của Excel.
– Bước 2: Tại thẻ Developer, chọn nút Record Macro.
Chọn nút Record Macro
Khi bấm nút Record Macro, sẽ xuất hiện một cửa sổ thông tin về Macro gồm:
+ Macro name: tên của Macro được tạo bởi việc Record Macro
+ Shortcut key: phím tắt cho Macro được tạo
+ Store macro in: nơi lưu trữ macro trong các Project của VBA
+ Description: mô tả về macro và ghi chú
Sau khi điều chỉnh thông số xong, bạn nhấn nút OK.
Sau khi điều chỉnh, nhấn OK
– Bước 3: Những lưu ý khi kết thúc lệnh Record Macro
Khi đã bước vào tiến trình ghi Macro, bạn cần lưu ý rằng bất kỳ thao tác nào cũng sẽ được ghi lại thành đoạn code của Macro trong VBA (dù có làm việc với Excel hay không). Vì vậy cần hạn chế các thao tác thừa như lăn chuột, chọn/di chuyển quá nhiều ô, nhiều sheet,…
Những thao tác phức tạp sẽ cho ra những câu lệnh phức tạp. Bởi vậy, những người mới học nên cố gắng sử dụng những thao tác đơn giản, chính xác nhất. Ngoài ra, hãy luôn nhớ bấm nút Stop Recording khi muốn dừng việc ghi Macro. Nút Stop Recording ở tại chính vị trí nút Record Macro khi ở chế độ ghi Macro.
Vị trí Nút Stop Recording
– Bước 4: Kiểm tra kết quả Macro vừa ghi được
Macro vừa ghi sẽ nằm trong môi trường VBA nên bạn cần mở môi trường này ra mới có thể xem được nội dung của Macro.
Trong thẻ Developer > Chọn mục Visual Basic phím tắt là Alt + F11)
Chọn Visual Basic
Trong giao diện làm việc của VBA chúng ta chú ý vào cửa sổ Project. Tại đây xuất hiên mục Modules, trong đó bao gồm Module1. Khi bấm vào Module1, bạn sẽ thấy Sub Macro1. Đây chính là tên của Macro vừa ghi lại bởi Record Macro.
Giao diện làm việc của VBA – Project
Nguyên tắc khi tự học VBA thông qua Record Macro
Khi tự học lập trình vba trong excel cho người mới bắt đầu thông qua Record Macro, bạn nên tuân theo 3 nguyên tắc cơ bản sau:
– Nguyên tắc số một: Không quay lại các hành động quá nhiều hoặc quá ít khi quay lại macro. Nếu bạn quay lại quá nhiều hoặc quá ít, bạn có thể gặp lỗi hoặc mất dữ liệu trong Excel.
– Nguyên tắc số hai: Không sao chép mã VBA từ các nguồn không tin cậy. Nếu bạn sao chép mã VBA từ các nguồn không tin cậy, bạn có thể gặp lỗi hoặc mất dữ liệu trong Excel.
– Nguyên tắc số ba: Không sử dụng mã VBA của người khác mà không có sự cho phép. Nếu bạn sử dụng mã VBA của người khác mà không có sự cho phép, bạn có thể vi phạm bản quyền hoặc gây hại cho máy tính của người khác.
Nguyên tắc khi tự học VBA thông qua Record Macro
Hướng dẫn học VBA excel dễ hiểu cho cả người không biết
VBA là viết tắt của Visual Basic for Applications, là một ngôn ngữ lập trình được sử dụng để tùy biến và điều khiển các chức năng của Microsoft Excel. VBA giúp bạn có thể thực hiện các công việc phức tạp hơn, như xử lý dữ liệu, tạo biểu đồ, phân tích số liệu,… VBA cũng giúp bạn tiết kiệm thời gian và công sức khi làm việc với Excel. Nếu bạn muốn học VBA excel dễ hiểu cho cả người không biết, bạn có thể tham khảo phần hướng dẫn học vba excel dưới đây.
Tự Học VBA Trong Excel – Nằm Lòng Kiến thức Từ A – Z
Excel là công cụ chắc không còn gì xa lạ với “dân văn phòng”. Nếu bạn đã sử dụng Excel rất nhiều trong công việc có lẽ bạn đã nghe nói về Macro hoặc về VBA. Excel VBA có thể giúp bạn thực hiện công việc một cách nhanh nhất. Trong bài viết hôm nay hãy cùng MCI tìm hiểu về lộ trình tự học VBA trong Excel hiệu quả nhất nhé!
Nội dung bài viết
VBA là gì?
VBA là viết tắt của: Visual Basic Application. VBA cho phép bạn tự động hóa các hoạt động khác nhau trong Excel như tạo báo cáo, chuẩn bị biểu đồ và đồ thị, thực hiện tính toán,… Hoạt động tự động hóa này cũng thường được gọi là Macro. Cách này giúp người dùng tiết kiệm thời gian vì không phải chạy các bước lặp đi lặp lại, tiết kiệm một lượng lớn thời gian.
Tự Học VBA trong Excel Như Thế Nào Cho Hiệu Quả?
Vì ứng dụng tuyệt vời của VBA mà rất nhiều nhân viên văn phòng bắt tay vào học công cụ hữu ích này. Với hình thức tự học, chúng ta hoàn toàn có thể chủ động thời gian, chủ động kiến thức…nhưng nếu không có người dẫn dắt hay định hướng, bạn có thể bị mông lung ngay từ khi bắt đầu. Bởi vì kiến thức rất nhiều, và không biết bắt đầu từ đâu, cũng như kiếm được một lộ trình học bài bản thì rất là khó…
Keywords searched by users: vba excel cơ bản
Categories: Khám phá 69 Vba Excel Cơ Bản
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/