Mục lục
Hướng dẫn từng bước cho người mới bắt đầu ghi, xem, chạy và lưu macro. Bạn cũng sẽ tìm hiểu một số cơ chế bên trong về cách macro hoạt động trong Excel.
Macro là một cách tuyệt vời để tự động hóa các tác vụ lặp đi lặp lại trong Excel. Nếu bạn thấy mình làm đi làm lại những việc giống nhau, hãy ghi lại các bước di chuyển của bạn dưới dạng macro và gán phím tắt cho thao tác đó. Và giờ đây, bạn có thể thực hiện tất cả các hành động đã ghi một cách tự động, chỉ với một lần nhấn phím!
Cách ghi macro trong Excel
Giống như các công cụ VBA khác, macro Excel nằm trên tab Nhà phát triển , được ẩn theo mặc định. Vì vậy, điều đầu tiên bạn cần làm là thêm tab Nhà phát triển vào dải băng Excel của mình.
Để ghi macro trong Excel, hãy thực hiện các bước sau:
- Trên Nhà phát triển , trong nhóm Mã , hãy nhấp vào nút Ghi Macro .
Ngoài ra, hãy nhấp vào Ghi Nút Macro ở phía bên trái của thanh Trạng thái :
Nếu bạn thích làm việc với bàn phím hơn là chuột, hãy nhấn nút sau dãy phím Alt , L , R (từng cái một, không phải tất cả các phím cùng một lúc).
- Trong hộp thoại Ghi Macro xuất hiện, định cấu hình các tham số chính cho macro của bạn:
- Trong Macro hộp tên , hãy nhập tên cho macro của bạn. Hãy cố gắng làm cho nó có ý nghĩa và mang tính mô tả, để sau này bạn có thể nhanh chóng tìm thấy macro trong danh sách.
Tronggiúp bạn tiết kiệm rất nhiều thời gian và công sức, giúp quá trình học tập của bạn mượt mà hơn và macro hiệu quả hơn.
Sử dụng tham chiếu tương đối để ghi macro
Theo mặc định, Excel sử dụng tuyệt đối reference để ghi macro. Điều đó có nghĩa là mã VBA của bạn sẽ luôn tham chiếu chính xác đến các ô mà bạn đã chọn, bất kể bạn đang ở đâu trong trang tính khi chạy macro.
Tuy nhiên, có thể thay đổi hành vi mặc định thành tham chiếu tương đối . Trong trường hợp này, VBA sẽ không mã hóa cứng địa chỉ ô, nhưng sẽ hoạt động tương đối với ô đang hoạt động (hiện được chọn).
Để ghi macro có tham chiếu tương đối, hãy nhấp vào Sử dụng Tham chiếu tương đối trên tab Nhà phát triển . Để quay lại tham chiếu tuyệt đối, hãy nhấp lại vào nút để tắt tham chiếu.
Ví dụ: nếu bạn ghi lại việc thiết lập một bảng có tham chiếu tuyệt đối mặc định, thì macro của bạn sẽ luôn tạo lại bảng ở cùng một vị trí (trong trường hợp này là Header trong A1, Item1 trong A2, Item2 trong A3).
Sub Phạm vi Absolute_References()( "A1" ). Chọn ActiveCell.FormulaR1C1 = Phạm vi "Tiêu đề" ("A2" ). Chọn ActiveCell.FormulaR1C1 = Phạm vi "Item1" ("A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub
Nếu bạn ghi cùng một macro với tham chiếu tương đối, bảng sẽ được tạo ở bất cứ đâu bạn đặt con trỏ trước khi chạy macro ( Header trongô hiện hoạt, Item1 trong ô bên dưới, v.v.).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Chọn ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Chọn ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End SubLưu ý:
- Khi sử dụng tham chiếu tương đối, hãy đảm bảo chọn ô ban đầu trước khi bạn bắt đầu ghi macro.
- Tham chiếu tương đối không hoạt động cho mọi thứ. Một số tính năng của Excel, ví dụ: chuyển đổi một phạm vi thành bảng, yêu cầu tham chiếu tuyệt đối.
Chọn phạm vi bằng cách sử dụng phím tắt
Khi bạn chọn một ô hoặc một phạm vi ô bằng chuột hoặc các phím mũi tên, Excel ghi địa chỉ ô. Do đó, bất cứ khi nào bạn chạy macro, các thao tác đã ghi sẽ được thực hiện chính xác trên cùng một ô. Nếu đây không phải là điều bạn muốn, hãy sử dụng phím tắt để chọn ô và phạm vi.
Ví dụ: hãy ghi lại một macro đặt định dạng cụ thể (d-mmm-yy) cho các ngày trong bảng bên dưới:
Đối với điều này, bạn ghi lại các thao tác sau: nhấn Ctrl + 1 để mở hộp thoại Định dạng ô > Ngày > chọn định dạng > ĐƯỢC RỒI. Nếu bản ghi của bạn bao gồm chọn phạm vi bằng chuột hoặc phím mũi tên, Excel sẽ tạo mã VBA sau:
Sub Date_Format() Range( "A2:B4" ). Lựa chọnSelection.NumberFormat = "d-mmm-yy" End SubChạy macro ở trên sẽ chọn phạm vi A2:B4 mỗi lần. Nếu bạn thêm một số hàng nữa vào bảng của mình, macro sẽ không xử lý chúng.
Bây giờ, hãy xem điều gì sẽ xảy ra khi bạn chọn bảng bằng phím tắt.
Đặt con trỏ trong ô trên cùng bên trái của phạm vi đích (A2 trong ví dụ này), bắt đầu ghi và nhấn Ctrl + Shift + End . Kết quả là dòng mã đầu tiên sẽ có dạng như sau:
Phạm vi(Selection, ActiveCell.SpecialCells(xlLastCell)). ChọnMã này chọn tất cả các ô từ ô hiện hoạt đến ô được sử dụng cuối cùng, nghĩa là tất cả dữ liệu mới sẽ tự động được đưa vào vùng chọn.
Ngoài ra, bạn có thể sử dụng tổ hợp Ctrl + Shift + Mũi tên:
- Ctrl + Shift + Mũi tên phải để chọn tất cả các ô đã sử dụng ở bên phải, tiếp theo là
- Ctrl + Shift + Mũi tên xuống để chọn tất cả các ô đã sử dụng ở dưới.
Điều này sẽ tạo ra hai dòng mã thay vì một, nhưng kết quả sẽ giống nhau - tất cả các ô có dữ liệu ở phía dưới và bên phải của ô hiện hoạt sẽ được chọn:
Phạm vi(Lựa chọn, Lựa chọn. Kết thúc ( xlToRight)). Phạm vi chọn (Lựa chọn, Lựa chọn. Kết thúc (xlDown)). ChọnGhi macro để lựa chọn thay vì các ô cụ thể
Phương pháp trên (nghĩa là chọn tất cả các ô được sử dụng bắt đầu bằng ô hiện hoạt) rất hiệu quả khi thực hiện các thao tác tương tự trên toàn bộ bảng. Trong một sốtuy nhiên, trong các trường hợp, bạn có thể muốn macro xử lý một phạm vi nhất định thay vì toàn bộ bảng.
Đối với điều này, VBA cung cấp đối tượng Selection đề cập đến (các) ô hiện được chọn . Hầu hết những điều có thể được thực hiện với một phạm vi, cũng có thể được thực hiện với lựa chọn. Nó mang lại lợi ích gì cho bạn? Trong nhiều trường hợp, bạn không cần phải chọn bất kỳ thứ gì trong khi ghi - chỉ cần viết macro cho ô đang hoạt động. Sau đó, chọn bất kỳ phạm vi nào bạn muốn, chạy macro và macro sẽ thao tác với toàn bộ lựa chọn.
Ví dụ: macro một dòng này có thể định dạng bất kỳ số lượng ô đã chọn nào dưới dạng phần trăm:
Sub Percent_Format () Selection.NumberFormat = "0,00%" End SubLập kế hoạch cẩn thận cho những gì bạn ghi lại
Trình ghi Macro Microsoft Excel ghi lại gần như tất cả hoạt động của bạn, bao gồm cả những lỗi bạn mắc phải và sửa chữa. Ví dụ: nếu bạn nhấn Ctrl + Z để hoàn tác điều gì đó, điều đó cũng sẽ được ghi lại. Cuối cùng, bạn có thể kết thúc với rất nhiều mã không cần thiết. Để tránh điều này, hãy chỉnh sửa mã trong Trình chỉnh sửa VB hoặc dừng ghi, xóa macro bị thiếu và bắt đầu ghi lại.
Sao lưu hoặc lưu sổ làm việc trước khi chạy macro
Kết quả của Excel không thể hoàn tác macro. Vì vậy, trước lần chạy macro đầu tiên, bạn nên tạo một bản sao của sổ làm việc hoặc ít nhất là lưu công việc hiện tại của bạn để ngăn những thay đổi không mong muốn. Nếu macro làm sai điều gì đó,chỉ cần đóng sổ làm việc mà không lưu.
Giữ ngắn gọn các macro đã ghi
Khi tự động hóa một chuỗi các tác vụ khác nhau, bạn có thể muốn ghi lại tất cả chúng trong một macro. Có hai lý do chính để không làm điều này. Đầu tiên, thật khó để ghi lại một macro dài mà không mắc lỗi. Thứ hai, các macro lớn rất khó hiểu, kiểm tra và gỡ lỗi. Do đó, bạn nên chia một macro lớn thành nhiều phần. Ví dụ: khi tạo bảng tóm tắt từ nhiều nguồn, bạn có thể sử dụng một macro để nhập thông tin, một macro khác để hợp nhất dữ liệu và macro thứ ba để định dạng bảng.
Tôi hy vọng hướng dẫn này đã cung cấp cho bạn một số thông tin chi tiết về cách ghi macro trong Excel. Dù sao, tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!
tên macro, bạn có thể sử dụng chữ cái, số và dấu gạch dưới; ký tự đầu tiên phải là một chữ cái. Không được phép sử dụng khoảng trắng, vì vậy bạn nên đặt tên có một từ bắt đầu mỗi phần bằng một chữ in hoa (ví dụ: MyFirstMacro ) hoặc các từ riêng biệt có dấu gạch dưới (ví dụ: My_First_Macro ). - Trong hộp Phím tắt , nhập bất kỳ chữ cái nào để gán phím tắt cho macro (tùy chọn).
Cho phép sử dụng cả chữ hoa hoặc chữ thường, nhưng bạn nên khôn ngoan sử dụng tổ hợp phím chữ hoa ( Ctrl + Shift + chữ cái ) vì phím tắt macro sẽ ghi đè bất kỳ phím tắt Excel mặc định nào trong khi sổ làm việc chứa macro đang mở. Ví dụ: nếu bạn gán Ctrl + S cho macro, bạn sẽ mất khả năng lưu tệp Excel của mình bằng phím tắt. Chỉ định Ctrl + Shift + S sẽ giữ lối tắt lưu tiêu chuẩn.
- Từ danh sách thả xuống Lưu trữ macro trong , hãy chọn nơi bạn muốn lưu trữ macro của mình:
- Sổ làm việc Macro Cá nhân – lưu trữ macro vào một sổ làm việc đặc biệt có tên là Personal.xlsb . Tất cả các macro được lưu trữ trong sổ làm việc này đều có sẵn bất cứ khi nào bạn sử dụng Excel.
- Sổ làm việc này (mặc định) - macro sẽ được lưu trữ trong sổ làm việc hiện tại và sẽ khả dụng khi bạn mở lại sổ làm việc hoặc chia sẻ nó với những người dùng khác.
- Sổ làm việc mới – tạo một sổ làm việc mới và ghi macro vào sổ làm việc đó.
- Trong Mô tả , hãy nhập mô tả ngắn về những gì macro của bạn thực hiện (tùy chọn).
Mặc dù trường này là tùy chọn nhưng tôi khuyên bạn nên luôn cung cấp một mô tả ngắn gọn. Khi bạn tạo nhiều macro khác nhau, nó sẽ giúp bạn nhanh chóng hiểu được chức năng của từng macro.
- Nhấp vào OK để bắt đầu ghi macro.
- Trong Macro hộp tên , hãy nhập tên cho macro của bạn. Hãy cố gắng làm cho nó có ý nghĩa và mang tính mô tả, để sau này bạn có thể nhanh chóng tìm thấy macro trong danh sách.
- Thực hiện tác vụ bạn muốn để tự động hóa (vui lòng xem ví dụ về macro ghi).
- Khi hoàn tất, hãy nhấp vào nút Dừng ghi trên tab Nhà phát triển :
Hoặc nút tương tự trên thanh Trạng thái :
Ví dụ ghi macro trong Excel
Để xem nó hoạt động như thế nào trong thực tế, hãy ghi lại một macro áp dụng một số định dạng cho các ô đã chọn. Đối với điều này, hãy làm như sau:
- Chọn một hoặc nhiều ô mà bạn muốn định dạng.
- Trên tab Developer hoặc Status thanh, nhấp vào Ghi Macro .
- Trong hộp thoại Ghi Macro , định cấu hình các cài đặt sau:
- Đặt tên cho macro Header_Formatting (vì chúng ta sẽ định dạng tiêu đề cột).
- Đặt con trỏ vào hộp Phím tắt và nhấn đồng thời các phím Shift + F. Thao tác này sẽ gán phím tắt Ctrl + Shift + F cho macro.
- Chọn lưu trữ macro trong sổ làm việc này.
- Đối với Mô tả , hãy sử dụng văn bản sau để giải thích nội dung vĩ mô làm: Làm đậm văn bản, thêm màu tô và căn giữa .
- Nhấp vào OK để bắt đầu ghi.
- Định dạng các ô được chọn trước theo cách bạn muốn. Đối với ví dụ này, chúng tôi sử dụng định dạng văn bản in đậm, tô màu xanh lam nhạt và căn giữa.
Mẹo. Không chọn bất kỳ ô nào sau khi bạn đã bắt đầu ghi macro. Điều này sẽ đảm bảo rằng tất cả định dạng áp dụng cho lựa chọn , không phải một phạm vi cụ thể.
- Nhấp vào Dừng ghi trên tab Nhà phát triển hoặc thanh Trạng thái .
Vậy đó! Macro của bạn đã được ghi lại. Giờ đây, bạn có thể chọn bất kỳ phạm vi ô nào trong bất kỳ trang tính nào, nhấn phím tắt được chỉ định ( Ctrl+ Shift + F ) và định dạng tùy chỉnh của bạn sẽ ngay lập tức được áp dụng cho các ô đã chọn.
Cách làm việc với các macro đã ghi trong Excel
Có thể truy cập tất cả các tùy chọn chính mà Excel cung cấp cho macro qua hộp thoại Macro . Để mở nó, hãy nhấp vào nút Macro trên tab Nhà phát triển hoặc nhấn phím tắt Alt+ F8.
Trong hộp thoại mở ra, bạn có thể xem danh sách macro có sẵn trong tất cả các sổ làm việc đang mở hoặc được liên kết với một sổ làm việc cụ thể và sử dụng các tùy chọn sau:
- Chạy - thực thi macro đã chọn .
- Bước vào - cho phép bạn gỡ lỗi và kiểm tra macro trong Visual Basic Editor.
- Chỉnh sửa - mở macro đã chọn trongVBA Editor, nơi bạn có thể xem và chỉnh sửa mã.
- Xóa - xóa vĩnh viễn macro đã chọn.
- Tùy chọn – cho phép thay đổi thuộc tính của macro, chẳng hạn như Phím tắt phím và Mô tả được liên kết.
Cách xem macro trong Excel
Có thể xem và sửa đổi mã của macro Excel trong Visual Basic Editor. Để mở Trình chỉnh sửa, nhấn Alt + F11 hoặc nhấp vào nút Visual Basic trên tab Nhà phát triển .
Nếu bạn thấy lần đầu làm VB Editor các bạn đừng nản và ngại. Chúng ta sẽ không nói về cấu trúc hoặc cú pháp của ngôn ngữ VBA. Phần này sẽ chỉ cung cấp cho bạn một số hiểu biết cơ bản về cách macro Excel hoạt động và tác dụng thực sự của việc ghi macro.
Trình chỉnh sửa VBA có một số cửa sổ, nhưng chúng tôi sẽ tập trung vào hai cửa sổ chính:
Project Explorer - hiển thị danh sách tất cả các sổ làm việc đang mở và trang tính của chúng. Ngoài ra, nó hiển thị các mô-đun, biểu mẫu người dùng và mô-đun lớp.
Cửa sổ mã - đây là nơi bạn có thể xem, chỉnh sửa và viết mã VBA cho từng đối tượng được hiển thị trong Project Explorer.
Khi chúng tôi ghi lại macro mẫu, những điều sau đây đã xảy ra trong phần phụ trợ:
- Một mô-đun mới ( Moduel1 ) đã được đã chèn.
- Mã VBA của macro được viết trong cửa sổ Mã.
Để xem mã của một macro cụ thểmô-đun, bấm đúp vào mô-đun (trong trường hợp của chúng tôi là Module1 ) trong cửa sổ Project Explorer. Thông thường, mã macro có các phần sau:
Tên macro
Trong VBA, bất kỳ macro nào cũng bắt đầu bằng Sub theo sau là tên macro và kết thúc bằng End Sub , trong đó "Sub" là viết tắt của Chương trình con (còn được gọi là Quy trình ). Macro mẫu của chúng tôi có tên là Header_Formatting() , vì vậy mã bắt đầu bằng dòng này:
Sub Header_Formatting()Nếu bạn muốn đổi tên macro , chỉ cần xóa tên hiện tại và nhập tên mới trực tiếp vào cửa sổ Mã.
Nhận xét
Các dòng có tiền tố dấu nháy đơn (') và được hiển thị bằng màu xanh lục theo mặc định sẽ không được thực thi. Đây là những bình luận được thêm vào cho mục đích thông tin. Các dòng chú thích có thể được xóa một cách an toàn mà không ảnh hưởng đến chức năng của mã.
Thông thường, một macro được ghi có 1 - 3 dòng chú thích: tên macro (bắt buộc); mô tả và lối tắt (nếu được chỉ định trước khi ghi).
Mã thực thi
Sau nhận xét, sẽ có mã thực thi các hành động bạn đã ghi. Đôi khi, một macro được ghi lại có thể có nhiều mã thừa, mã này vẫn có thể hữu ích để tìm hiểu cách mọi thứ hoạt động với VBA :)
Hình ảnh bên dưới hiển thị chức năng của từng phần trong mã macro của chúng tôi:
Cách chạy macro đã ghi
Bằng cách chạy macro, bạn yêu cầu Excel quay lại mã VBA đã ghi và thực thicác bước chính xác như nhau. Có một số cách để chạy macro đã ghi trong Excel và đây là những cách nhanh nhất:
- Nếu bạn đã gán phím tắt cho macro, hãy nhấn phím tắt đó .
- Nhấn Alt + 8 hoặc nhấp vào nút Macro trên tab Nhà phát triển . Trong hộp thoại Macro , chọn macro mong muốn và nhấp vào Chạy .
Cũng có thể chạy macro đã ghi bằng cách nhấp vào nút của riêng bạn. Dưới đây là các bước để tạo một nút: Cách tạo nút macro trong Excel.
Cách lưu macro trong Excel
Cho dù bạn đã ghi macro hay viết mã VBA theo cách thủ công, để lưu macro , bạn cần lưu sổ làm việc dưới dạng đã bật macro (tiện ích mở rộng .xlms). Đây là cách thực hiện:
- Trong sổ làm việc chứa macro, hãy nhấp vào nút Lưu hoặc nhấn Ctrl + S .
- Trong Lưu dưới dạng hộp thoại, chọn Sổ làm việc hỗ trợ macro Excel (*.xlsm) từ danh sách thả xuống Lưu dưới dạng , rồi bấm Lưu :
Macro Excel: cái gì được và cái gì không được ghi
Như bạn vừa thấy, thật dễ dàng để ghi macro trong Excel. Tuy nhiên, để tạo macro hiệu quả, bạn cần hiểu những gì đang diễn ra ở hậu trường.
Những gì được ghi lại
Trình ghi Macro của Excel ghi lại khá nhiều thứ - hầu hết tất cả các lần nhấp chuột và nhấn phím. Vì vậy, bạn nên suy nghĩ cẩn thận về các bước của mình để tránh mã thừa có thểdẫn đến hành vi không mong muốn của macro của bạn. Dưới đây là một vài ví dụ về những gì Excel ghi lại:
- Chọn ô bằng chuột hoặc bàn phím. Chỉ lựa chọn cuối cùng trước khi một hành động được ghi lại. Ví dụ: nếu bạn chọn phạm vi A1:A10, sau đó nhấp vào ô A11, thì chỉ có lựa chọn A11 sẽ được ghi lại.
- Định dạng ô như nền và màu phông chữ, căn chỉnh, đường viền, v.v.
- Định dạng số như tỷ lệ phần trăm, tiền tệ, v.v.
- Chỉnh sửa công thức và giá trị. Các thay đổi được ghi lại sau khi bạn nhấn Enter .
- Cuộn, di chuyển cửa sổ Excel, chuyển sang trang tính và sổ làm việc khác.
- Thêm, đặt tên, di chuyển và xóa trang tính.
- Tạo, mở và lưu sổ làm việc.
- Chạy các macro khác.
Không thể ghi nội dung nào
Mặc dù Excel có thể ghi nhiều nội dung khác nhau nhưng một số tính năng nhất định nằm ngoài khả năng của Excel Trình ghi Macro:
- Các tùy chỉnh của dải băng Excel và thanh công cụ Truy cập nhanh.
- Các hành động bên trong hộp thoại Excel, chẳng hạn như Định dạng có điều kiện hoặc Tìm và thay thế (chỉ kết quả được ghi lại).
- Tương tác với các chương trình khác. Ví dụ: bạn không thể ghi sao chép/dán từ sổ làm việc Excel vào tài liệu Word.
- Bất kỳ thứ gì liên quan đến Trình soạn thảo VBA. Điều này đặt ra những hạn chế quan trọng nhất - nhiều thứ có thể được thực hiện ở cấp độ lập trình nhưng không thểđược ghi lại:
- Tạo chức năng tùy chỉnh
- Hiển thị hộp thoại tùy chỉnh
- Tạo các vòng lặp như For Next , For Each , Do While , v.v.
- Đánh giá các điều kiện. Trong VBA, bạn có thể sử dụng câu lệnh IF Then Else để kiểm tra một điều kiện và chạy một số mã nếu điều kiện đúng hoặc một mã khác nếu điều kiện sai.
- Thực thi mã dựa trên các sự kiện . Với VBA, bạn có thể sử dụng nhiều sự kiện để chạy mã được liên kết với sự kiện đó (chẳng hạn như mở sổ làm việc, tính toán lại trang tính, thay đổi lựa chọn, v.v.).
- Sử dụng đối số. Khi viết một macro trong VBA Editor, bạn có thể cung cấp các đối số đầu vào cho một macro để thực hiện một tác vụ nào đó. Macro đã ghi không thể có bất kỳ đối số nào vì nó độc lập và không được kết nối với bất kỳ macro nào khác.
- Hiểu logic. Ví dụ: nếu bạn ghi một macro sao chép các ô cụ thể, chẳng hạn như trong hàng Total , thì Excel sẽ chỉ ghi lại địa chỉ của các ô đã sao chép. Với VBA, bạn có thể viết mã logic, tức là sao chép các giá trị trong hàng Tổng .
Mặc dù các giới hạn trên đặt ra nhiều ranh giới cho các macro đã ghi, họ vẫn là một điểm khởi đầu tốt. Ngay cả khi bạn không biết gì về ngôn ngữ VBA, bạn vẫn có thể nhanh chóng ghi lại macro, sau đó phân tích mã của nó.
Mẹo hữu ích để ghi macro trong Excel
Dưới đây, bạn sẽ tìm thấy một số mẹo và ghi chú có thể có khả năng