Hướng dẫn cách tự học VBA hiệu quả với chức năng record macro

Đối với nhiều người trong chúng ta, VBA là một kiến thức khá mới. VBA là Visual Basic Application – ngôn ngữ lập trình đi kèm với các phần mềm của Microsoft. VBA có tính ứng dụng rất cao, giúp tự động hóa, giảm các thao tác tay, tăng hiệu quả hoạt động của các phần mềm như Excel, Word, PowerPoint… Nhưng việc tiếp cận VBA với nhiều bạn gặp khó, bởi chúng ta phải tìm hiểu một ngôn ngữ mới, học một tư duy mới là tư duy lập trình.

Trong bài viết này, Học Excel Online sẽ giới thiệu với các bạn một cách rất hiệu quả để có thể tự học VBA, đó là sử dụng chức năng Record Macro trong Excel.

Macros là gì?

Macros – hay nói cụ thể hơn là Excel Macros (trong phạm vi bài viết tìm hiểu về VBA trong Excel) là những chương trình nhỏ giúp lặp đi lặp lại các thao tác từ đơn giản tới phức tạp trong Excel một cách tự động.

Macros có thể bao gồm 1 hoặc nhiều câu lệnh nằm trong 1 thủ tục gọi là Sub.

Mỗi 1 Sub sẽ được bắt đầu với từ khóa Sub và kết thúc với từ khóa End Sub

Cách tạo ra 1 macro bằng Record Macro

Chúng ta có thể tạo ra 1 macro với cách rất đơn giản là thực hiện việc Record Macro.

Record Macro có nghĩa là ghi lại thao tác của người dùng, chuyển hóa thao tác đó thành 1 thủ tục (sub) để biến nó thành 1 Macro.

Các bước để thực hiện Record Macro như sau:

Bước 1: Mở thẻ Developer

Thẻ Developer là một thẻ đặc biệt trong Excel mà phục vụ cho những nhà phát triển, những người muốn áp dụng VBA vào Excel để khiến Excel làm việc hiệu quả hơn. Bản thân thẻ này đã có trong thanh công cụ của Excel, tuy nhiên ở chế độ mặc định thì nó không được hiển thị lên. Do đó muốn sử dụng thẻ này, chúng ta phải mở nó ra.

Cách thực hiện: Mời các bạn đọc ở bài viết:

Cách hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Bước 2: Bấm nút Record Macro

Tại thẻ Developer, chúng ta chọn tới nút Record Macro như hình sau:

Hình 1: vị trí nút Record Macro trong thẻ Developer

Khi bấm nút Record Macro, sẽ xuất hiện một cửa sổ thông tin về Macro được tạo, bao 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, ghi chú

Hình 2: vị trí đặt phím tắt cho Macro trong Record Macro

Tiếp theo chúng ta bấm vào nút OK trong cửa sổ Record Macro để bắt đầu tiến trình ghi Macro.

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, chúng ta cần hết sức chú ý:

  • Bất kỳ thao tác nào của chúng ta 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). Do đó cần hết sức hạn chế các thao tác thừa: 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. Do đó cố gắng sử dụng những thao tác đơn giản nhất, chính xác nhất nếu bạn mới học VBA.
  • 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:

Hình 3: Vị trí nút Stop Recording

Bước 4: Kiểm tra kết quả Macro vừa ghi được

Macro vừa ghi được sẽ nằm trong môi trường VBA. Do đó chúng ta cần mở môi trường này ra thì mới có thể xem được nội dung của Macro.

Trong thẻ Developer, các bạn bấm vào mục Visual Basic (hay phím tắt là Alt + F11)

Hình 4: Vị trí 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 thì thấy Sub Macro1. Đây chính là tên của Macro vừa ghi lại bởi Record Macro.

Hình 5: Giao diện làm việc của VBA – Project

Cách tự học VBA thông qua Record Macro

Với người mới học ngôn ngữ lập trình VBA, việc nhớ cách viết các câu lệnh khá là khó. Điều chúng ta băn khoăn nhất chính là không hiểu được cách viết 1 câu lệnh thế nào cho đúng, tiếp đó là cách diễn tả 1 mong muốn thành câu lệnh trong macro.

Cả 2 thắc mắc này đều có thể giải quyết thông qua việc sử dụng Record Macro. Chúng ta chưa cần phải biết viết code hay tự viết, bởi Excel sẽ làm điều đó giúp chúng ta. Chúng ta chỉ cần biết cách điều khiển Excel làm việc đó, và biết sử dụng kết quả thu được.

Những nguyên tắc khi tự học VBA thông qua Record Macro (không phải bắt buộc, nhưng nên tuân thủ)

Nguyên tắc 1: Biết rõ mục đích, thao tác cần thực hiện.

Việc này giúp hạn chế thao tác thừa, đồng thời giúp việc đọc hiểu code thông qua các thao tác vừa thực hiện được tốt hơn.

Nguyên tắc 2: Ghi lại các thao tác bằng tiếng việt trước cho từng đoạn lệnh.

Việc này giúp quá trình đọc, biên dịch lại các code được dễ dàng, dễ hiểu hơn khi đối chiếu tiếng việt với code

Nguyên tắc 3: Xóa bỏ những đoạn code thừa, không cần thiết

Trong quá trình record macro không thể tránh khỏi việc có những thao tác thừa. Do đó khi áp dụng nguyên tắc 1 và nguyên tắc 2, chúng ta có thể lọc ra được những đoạn code nào là thừa, không cần thiết. Khi đã lọc được rồi chúng ta nên xóa bỏ những đoạn code thừa, tránh gây nhầm lẫn trong quá trình chạy, xử lý code sau này.

Nguyên tắc 4: Lưu lại macro đã học được

Sau mỗi lần học VBA thông qua record macro, chúng ta lại thu được 1 macro làm một nhiệm vụ cụ thể. Những việc này có thể lặp đi lặp lại rất nhiều lần trong quá trình chúng ta học VBA, áp dụng VBA vào excel. Do đó cần lưu lại các macro đã học để có thể sử dụng lại bất cứ khi nào, tránh mất thời gian thực hiện lại. Việc này sẽ giúp chúng ta tăng tốc độ học, biết được những đoạn code nào là mới, code nào đã biết… để bổ sung thêm vào danh sách macro ngày một nhiều hơn.

Kết luận

Việc lập trình bao gồm 2 mảng chính:

  • Xử lý tự động các thao tác lặp đi lặp lại => Có thể học được thông qua record macro
  • Tạo ra những lệnh lập trình theo ý muốn, không có sẵn => Cần học tư duy lập trình, học cách viết code

Như vậy khi chúng ta biết cách sử dụng record macro và học VBA thông qua thao tác này, tức là chúng ta đã biết được gần 1 nửa những gì cần phải học, phải làm. Do đó với những ai đang có định hướng tìm hiểu VBA từ con số 0, chúng ta nên bắt đầu với việc học cách sử dụng record macro trong Excel luôn và ngay. Bạn sẽ thấy học VBA không khó như bạn vẫn nghĩ.

Xem thêm một vài ứng dụng của việc record macro trong tự động hóa Excel, lập báo cáo tự động:

Tự động lọc danh sách không trùng với Advanced Filter VBA cực kỳ đơn giản

Hướng dẫn cách lọc dữ liệu vào Báo cáo chi tiết trong Excel bằng VBA

Tự động tô màu dòng của ô được chọn trong bảng bằng VBA