Macro là gì ?
Bất cứ chương trình Office nào mà bạn làm việc – nó có thể là Excel, Word hay PowerPoint – có lẽ bạn sẽ nhận thấy rằng việc thực hiện một số công việc nào đó mà bạn phải lặp đi lặp lại nhiều lần. Chẳng hạn như việc gõ nhập và định dạng phần text, hoặc hiệu chỉnh tài liệu theo một cách đặc biệt nào đó. Khi gặp phải tình huống như vậy, bạn có thể sẽ nhận thấy rất muốn có một số cách đơn giản công việc này cho bạn và giảm thời gian thực hiện ngoại trừ các công việc quan trọng.
Xử lý vấn đề này là hoàn toàn có khả năng thực hiện được thậm chí có thể tự động các công việc này và chạy nó ngay lập tức bằng cách đơn giản chọn một lệnh hoặc chỉ bằng cách nhấn một phím hay nhấn một nút của thanh công cụ. Nghe có vẻ quá khó, nhưng đó là những gì mà VBA (Visual Basic for Application) có thể thực hiện cho bạn.
Macro là một tập những chỉ thị cho một chương trình như số lần bấm phím, số lần nhấp chuột, các khoảng thời gian delay giữa mỗi thao tác, giúp cho bạn tự động hóa các thao tác lặp đi lặp lại ở một vùng dữ liệu, thay vì bạn sẽ là người thực hiện chúng mọi lúc thì Macro sẽ thay bạn làm điều đó, chẳng hạn: như nhập chữ hoặc số, chọn ô, chọn lệnh trong thanh menu, định dạng ô, định dạng cột hoặc hàng, import dữ liệu từ nguồn ngoài..
Cách thu một Macro VBA trong Excel
Cách đơn giản nhất để tạo một macro lệnh là sử dụng Macro Recorder. Với phương pháp này, bạn chỉ cần khoảng cách recorder (bộ thu) và sau đó chạy các hoạt động mà bạn muốn tự động hóa và Recorder sẽ dịch mọi thứ thành các câu lệnh VBA thích hợp. Những câu lệnh này sẽ được sao chép sang một vùng riêng biệt được gọi là module, nơi bạn có thể chạy lại hoàn toàn thủ tục bất cứ khi nào bạn thích. Bây giờ, mình sẽ chỉ dẫn cho các bạn cách thu một lệnh macro trong Excel.
Nếu bạn không bật các menu đã được cá nhân hóa trong Excel bạn có thể sẽ không thấy lệnh menu Macro. Khi bạn đã sử dụng lệnh Macro, nó sẽ xuất hiện trong menu Developer.
Đầu tiên nếu trên file Excel của bạn chưa hiển thị thẻ Developer các bạn thực hiện hiển thị thẻ Developer trên thanh Ribbon như sau:
Vào chọn thẻ File > Options > Trong cửa sổ Excel Options > các bạn chọn Customize Ribbons, sau đó đánh dấu chọn trong ô vuông trước Developer và nhấn OK.
Sau đây là các bước thực hiện:
Cài đặt ứng dụng để sẵn sàng thu. Trong Excel, chẳng hạn, nếu bạn muốn thu một loạt các tùy chọn định dạng, hãy chọn ô mà bạn muốn làm việc.
Trong thẻ Developer, nhóm Code, chọn Record Macro. Bạn sẽ thấy hộp thoại Record Macro xuất hiện theo hình ảnh như dưới đây:
Ứng dụng tạo ra một tên cho Macro (chẳng hạn như Macro 1), nhưng bạn có thể sử dụng textbox tên Macro để thay đổi tên thành bất cứ tên gì bạn muốn. Tuy nhiên, bạn phải tuân theo các quy tắc đặt tên sau đây:
● Có thể không quá 255 ký tự.
● Ký tự đầu tiên phải là ký tự chữ hoặc một dấu gạch dưới ( _ ).
● Không có khoảng cách hoặc dấu chấm.
Gán một tổ hợp phím tắt tùy ý cho macro. Các bạn gõ nhập một ký tự bất kỳ trong textbox có nhãn là Shortcut key: Ctr+.
Hãy sử dụng Store macro in trong danh sách xổ xuống để chỉ định vị trí bạn muốn đặt cho macro. Trong Excel, bạn có thể lưu trữ macro trong This Workbook, một workbook mới hoặc trong Personal Macro Workbook, các macro của bạn sẽ có sẵn cho tất cả workbook của bạn.
Nhập một mô tả tùy ý của macro trong textbox của nhãn Description.
Nhấp vào OK. Ứng dụng sẽ trả bạn về tài liệu và hiển thị thanh công cụ Stop Recording.
Thực hiện các tác vụ mà bạn muốn đưa vào trong macro. Bởi vì bộ thu macro sẽ gợi ý mọi thứ mà bạn sẽ thực hiện ngoại trừ việc nhấp các nút trong thanh công cụ Stop Recording, hãy cẩn thận không nên thực hiện các hành động hoặc các lệnh lạ nào trong khi thu macro.
Khi bạn đã hoàn thành các tác vụ, hãy nhấp nút Stop Recording trong thanh công cụ.
Xem Module kết quả
Khi bạn thu một macro, ứng dụng sẽ tạo ra một “VBA project”. Đây là một container bao gồm cả tài liệu mà bạn đã sử dụng cho macro và một đối tượng đặc biệt được gọi là một module chứa cấu trúc lệnh macro.
Để xem Macro của bạn, hãy thực hiện theo các bước sau:
Trong thẻ Developer, tại khu vực Code > chọn Macros (hoặc bạn có thể nhấn tổ hợp phím Alt + F8). Bạn sẽ thấy hộp thoại Macro xuất hiện.
Trong danh sách tên Macro, tô sáng tên của Macro mà bạn vừa thu.
Nhấp vào nút Edit. Ứng dụng sẽ mở Visual Basic Editor và sau đó mở module và hiển thị macro. Như các bạn có thể thấy trong hình ảnh bên dưới, ứng dụng (Excel) sẽ dịch các hành động của bạn thành các câu lệnh VBA và kết hợp mọi thứ thành một macro đơn.
Một macro thông thường sẽ có các đặc điểm sau đây:
Sub: Từ khóa đánh dấu bắt đầu của một macro. Từ khóa Sub (là từ viết tắt của subroutine). Đó là lý do tại sao mà các macro còn được gọi là các thủ tục Sub.
Tên Macro: Sau từ khóa Sub, Excel sẽ nhập tên macro và đằng sau là các dấu ngoặc đơn trái và phải (ví dụ các ngoặc đơn được sử dụng cho các giá trị nhập vào, các đối số..).
Các chú thích: Một số dòng đầu tiên bắt đầu với dấu (‘), nó sẽ cho VBA biết là những dòng này là những dòng chú thích. Như tên của nó ngụ ý là các dòng chú thích chỉ hiển thị; chúng không được xử lý khi chạy macro. Trong mỗi macro được thu, các dòng chú thích hiển thị tên của macro và phần mô tả mà bạn đã nhập trong hộp thoại Record Macro (Trong Excel, các dòng chú thích cũng hiển thị các phím tắt, nếu bạn đã nhập).
Các câu lệnh Macro: Đây là phần thân chính của macro (nói cách khác, những dòng giứa Sub .. End Sub, không bao gồm các chú thích ban đầu) bao gồm một dãy các câu lệnh. Những câu lệnh này là những đoạn thông dịch của các hành động mà bạn đã thực hiện trong quá trình thu.
Trong ví dụ dưới đây, có bốn hành động được thực hiện trong Excel trong quá trình thu Macro:
‘ Bắt đầu một Macro
Sub dinhdango()
'
' dinhdango Macro
'
‘ Ô C8 được chọn
Range("C8").Select
‘ Ô được định dạng chữ đậm
Selection.Font.Bold = True
‘ Từ "Thu Macro" được gõ nhập và gán vào ô hoạt động (ô C8)
ActiveCell.FormulaR1C1 = "Thu Macro"
‘ Mũi tên xuống dưới được nhấn nó sẽ di chuyển vùng chọn qua ô C9
Range("C9").Select
‘ Các từ khóa đánh dấu phần kết thúc của macro
End Sub
Hiệu chỉnh một Macro đã thu
Khi bạn đã tìm hiểu và có kiến thức về VBA, bạn thường sẽ kết thúc với các Macro đã thu mà không thực hiện hoàn toàn ý định ban đầu của bạn. Dù macro chạy một lệnh mà nó không nên chạy hoặc thiếu một lệnh, bãn sẽ phải thêm những thứ này sau đó.
Các dòng trong một module VBA chỉ hoàn toàn là text. Vì vậy, bạn có thể thực hiện thay đổi trong bất kỳ một trình soạn thảo text nào, chẳng hạn: Word, Notepad.. Nếu macro chứa các câu lệnh mà bạn muốn loại bỏ, hãy xóa các dòng lệnh lỗi khỏi module.
Nếu bạn muốn thêm các hành động được thu cho macro, VBA sẽ không cho bạn bất cứ cách nào để thu lại các câu lệnh mới vào một macro đã có sẵn. Thay vào đó, trước tiên bạn sẽ thu một macro mới bao gồm các hành động mà bạn muốn và sau đó hiển thị macro. Từ đó, bạn có thể sử dụng các kỹ thuật cắt và dán của Windows (bao gồm rê và thả) để di chuyển các câu lệnh từ macro mới vào macro khác.
Tham khảo các chủ đề có liên quan khác: