Mã hóa VBA Excel: Làm việc với cửa sổ mã

0
3

Khi bạn thành thạo với VBA Excel, bạn dành nhiều thời gian để làm việc trong các cửa sổ Mã. Các macro mà bạn ghi được lưu trữ trong một mô-đun và bạn có thể nhập mã VBA Excel trực tiếp trong mô-đun VBA.

Tối thiểu hóa và tối đa hóa các cửa sổ mã VBA

Nếu bạn có một vài dự án mở, VBE có thể có rất nhiều cửa sổ Mã tại bất kỳ thời điểm nào.

Cửa sổ mã rất giống với cửa sổ sổ làm việc trong Excel. Bạn có thể thu nhỏ chúng, tối đa hóa chúng, thay đổi kích thước chúng, ẩn chúng, sắp xếp lại chúng, v.v. Hầu hết mọi người thấy dễ dàng hơn nhiều để tối đa hóa cửa sổ Mã mà họ đang làm việc. Làm như vậy cho phép bạn xem nhiều mã hơn và giúp bạn không bị phân tâm.

Để tối đa hóa cửa sổ Mã, nhấp vào nút Tối đa hóa trên thanh tiêu đề của nó (ngay bên cạnh X). Hoặc chỉ cần nhấp đúp vào thanh tiêu đề của nó để tối đa hóa nó. Để khôi phục cửa sổ Mã về kích thước ban đầu, nhấp vào nút Khôi phục. Khi cửa sổ được phóng to, thanh tiêu đề của nó không hiển thị, vì vậy bạn sẽ tìm thấy nút Khôi phục bên dưới thanh tiêu đề VBE.

Đôi khi, bạn có thể muốn có hai hoặc nhiều cửa sổ Mã hiển thị. Ví dụ, bạn có thể muốn so sánh mã trong hai mô-đun hoặc sao chép mã từ mô-đun này sang mô-đun khác. Bạn có thể sắp xếp các cửa sổ theo cách thủ công hoặc chọn Cửa sổ → Ngói theo chiều ngang hoặc Cửa sổ → Ngói theo chiều dọc để sắp xếp chúng tự động.

Bạn có thể nhanh chóng chuyển đổi giữa các cửa sổ Mã bằng cách nhấn Ctrl + F6. Nếu bạn lặp lại tổ hợp phím đó, bạn tiếp tục đạp xe qua tất cả các cửa sổ Mã đang mở. Nhấn Ctrl + Shift + F6 theo chu kỳ qua các cửa sổ theo thứ tự ngược lại. (Để biết thêm thông tin, hãy xem các phím tắt VBA Excel này .)

Tạo mô-đun VBA

Nói chung, một mô-đun VBA Excel có thể chứa ba loại mã:

  • Tuyên bố: Một hoặc nhiều tuyên bố thông tin mà bạn cung cấp cho VBA. Ví dụ: bạn có thể khai báo kiểu dữ liệu cho các biến bạn dự định sử dụng hoặc đặt một số tùy chọn trên toàn mô-đun khác. Tuyên bố về cơ bản là tuyên bố vệ sinh. Họ không thực sự bị xử tử.
  • Các thủ tục phụ: Một tập hợp các hướng dẫn lập trình mà khi được thực thi sẽ thực hiện một số hành động.
  • Các thủ tục hàm: Một tập hợp các hướng dẫn lập trình trả về một giá trị duy nhất (tương tự về khái niệm với hàm bảng tính, chẳng hạn như SUM).

Một mô-đun VBA duy nhất có thể lưu trữ bất kỳ số lượng thủ tục phụ, thủ tục chức năng và khai báo. Vâng, có là một giới hạn – khoảng 64.000 ký tự trên mỗi module. Thậm chí không có khả năng bạn sẽ tiến gần đến giới hạn 64.000 ký tự. Nhưng nếu bạn đã làm, giải pháp rất đơn giản: Chỉ cần chèn một mô-đun mới.

Cách bạn tổ chức một mô-đun VBA hoàn toàn phụ thuộc vào bạn. Một số người thích giữ tất cả mã VBA của họ cho một ứng dụng trong một mô-đun VBA duy nhất; những người khác muốn chia mã thành nhiều mô-đun. Đó là một lựa chọn cá nhân, giống như sắp xếp đồ đạc.

Lấy mã VBA vào một mô-đun

Một mô-đun VBA trống giống như thực phẩm giả mà bạn nhìn thấy trong cửa sổ của một số nhà hàng Trung Quốc; nó có vẻ tốt nhưng nó không thực sự làm được gì nhiều cho bạn Trước khi bạn có thể làm bất cứ điều gì có ý nghĩa, bạn phải có một số mã VBA trong mô-đun VBA. Bạn có thể nhận mã VBA vào mô-đun VBA theo ba cách:

  • Nhập mã trực tiếp.
  • Sử dụng trình ghi macro Excel để ghi lại các hành động của bạn và chuyển đổi các hành động đó thành mã VBA.
  • Sao chép mã từ một mô-đun và dán nó vào một mô-đun khác.

Sử dụng trình ghi macro Excel để ghi lại các hành động của bạn và chuyển đổi các hành động đó thành mã VBA. Sao chép mã từ một mô-đun và dán nó vào một mô-đun khác.

Nhập mã VBA Excel trực tiếp

Đôi khi, con đường tốt nhất là con đường trực tiếp nhất. Nhập mã trực tiếp liên quan đến tốt, nhập mã trực tiếp. Nói cách khác, bạn nhập mã bằng cách sử dụng bàn phím của bạn. Nhập và chỉnh sửa văn bản trong mô-đun VBA hoạt động như bạn mong đợi. Bạn có thể chọn, sao chép, cắt, dán và làm những việc khác cho văn bản.

Sử dụng phím Tab để thụt lề một số dòng để làm cho mã của bạn dễ đọc hơn. Thụt lề là không cần thiết, nhưng đó là một thói quen tốt để có được. Khi bạn nghiên cứu mã hóa VBA Excel, bạn sẽ hiểu tại sao các dòng mã thụt vào lại hữu ích.

Ghi nhớ: Một dòng mã VBA có thể miễn là bạn cần. Tuy nhiên, bạn có thể muốn sử dụng các ký tự tiếp tục dòng để phá vỡ các dòng mã dài. Để tiếp tục một dòng mã (còn được gọi là câu lệnh) từ dòng này sang dòng tiếp theo, kết thúc dòng đầu tiên bằng khoảng trắng theo sau là dấu gạch dưới (_). Sau đó tiếp tục tuyên bố trên dòng tiếp theo. Và đừng quên không gian. Một nhân vật gạch dưới không có trước một không gian sẽ không thực hiện công việc.

Đây là một ví dụ về một câu lệnh được chia thành ba dòng:

Lựa chọn.Sort Key1: = Range ("A1"), _
Thứ tự1: = xlAsceinating, Header: = xlGuess, _
Định hướng: = xlTopToBottom

Câu lệnh này sẽ thực hiện chính xác theo cùng một cách nếu nó được nhập vào một dòng duy nhất (không có ký tự tiếp tục dòng). Lưu ý rằng dòng thứ hai và thứ ba của tuyên bố này được thụt lề. Việc thụt lề là tùy chọn, nhưng nó giúp làm rõ thực tế rằng các dòng này không phải là các câu lệnh riêng biệt.

Bạn đã sẵn sàng để nhập một số mã thực? Hãy thử các bước sau:

  1. Tạo một bảng tính mới trong Excel.
  2. Nhấn Alt + F11 để kích hoạt VBE.
  3. Bấm vào tên của sổ làm việc mới trong cửa sổ Dự án.
  4. Chọn Chèn → Mô-đun để chèn mô-đun VBA vào dự án.
  5. Nhập mã sau vào mô-đun:
Tên phụ Guess ()
Msg = "Là tên của bạn" & Application.UserName & "?"
Ans = MsgBox (Msg, vbYesKhông)
Nếu Ans = vbKhông thì MsgBox "Ồ, đừng bận tâm."
Nếu Ans = vbYes thì MsgBox "Tôi phải là người tâm lý!"
Kết thúc phụ

6. Định vị con trỏ ở bất cứ đâu trong văn bản bạn đã nhập và nhấn F5 để thực hiện quy trình.

F5 là lối tắt cho Chạy → Chạy Sub / UserForm. Nếu bạn nhập mã chính xác, Excel sẽ thực hiện quy trình và bạn có thể trả lời hộp thoại đơn giản. Văn bản trong hộp thoại sẽ khác với văn bản hiển thị ở đây.

Khi bạn nhập mã được liệt kê trong Bước 5, bạn có thể nhận thấy VBE thực hiện một số điều chỉnh cho văn bản bạn nhập. Ví dụ: sau khi bạn nhập câu lệnh Sub, VBE sẽ tự động chèn câu lệnh End Sub. Và nếu bạn bỏ qua khoảng trắng trước hoặc sau một dấu bằng, VBE sẽ chèn khoảng trắng cho bạn. Ngoài ra, VBE thay đổi màu sắc và viết hoa của một số văn bản. Đây là tất cả hoàn toàn bình thường. Đó chỉ là cách của VBE để giữ mọi thứ gọn gàng và dễ đọc.

Nếu bạn đã làm theo các bước trước, bạn chỉ cần viết một thủ tục phụ VBA, còn được gọi là macro. Khi bạn nhấn F5, Excel sẽ thực thi mã và làm theo hướng dẫn. Nói cách khác, Excel đánh giá từng câu lệnh và thực hiện những gì bạn bảo nó làm. (Đừng để sức mạnh mới phát hiện này trong đầu bạn.) Bạn có thể thực hiện macro này bất kỳ số lần nào – mặc dù nó có xu hướng mất đi sự hấp dẫn sau vài chục lần.

Đối với bản ghi, macro Excel đơn giản này sử dụng các khái niệm sau:

  • Xác định thủ tục phụ (dòng đầu tiên)
  • Gán giá trị cho các biến (Msg và Ans)
  • Nối (nối) một chuỗi (sử dụng toán tử &)
  • Sử dụng chức năng VBA tích hợp (MsgBox)
  • Sử dụng các hằng số VBA tích hợp (vbYesNo, vbNo và vbYes)
  • Sử dụng cấu trúc If-Then (hai lần)
  • Kết thúc một thủ tục phụ (dòng cuối cùng)

Sử dụng trình ghi macro VBA Excel

Một cách khác để bạn có thể nhận mã vào mô-đun VBA là ghi lại hành động của mình, sử dụng trình ghi macro Excel.

Dưới đây là ví dụ từng bước chỉ ra cách ghi một macro chèn một bảng tính mới và ẩn tất cả trừ mười hàng đầu tiên và tất cả trừ mười cột đầu tiên. Nếu bạn muốn thử ví dụ này, hãy bắt đầu với một sổ làm việc Excel mới, trống và làm theo các bước sau:

1. Kích hoạt một bảng tính trong bảng tính.
Bất kỳ bảng tính Excel sẽ làm.

2. Nhấp vào tab Nhà phát triển và đảm bảo rằng Sử dụng Tài liệu tham khảo tương đối không được tô sáng.
Macro này được ghi lại bằng cách sử dụng tài liệu tham khảo tuyệt đối.

3. Chọn Nhà phát triển → Mã → Ghi macro hoặc nhấp vào biểu tượng bên cạnh chỉ báo Sẵn sàng ở đầu bên trái của thanh trạng thái.
Excel hiển thị hộp thoại Record Macro của nó.

4. Trong hộp thoại Record Macro, đặt tên cho macro TenByTen, chỉ định rằng bạn muốn macro được lưu trong Sổ làm việc này và nhấn Shift + T cho phím tắt.
Macro có thể được thực thi khi bạn nhấn Ctrl + Shift + T.

5. Nhấn OK để bắt đầu ghi âm. Excel tự động chèn một mô-đun VBA mới vào dự án tương ứng với sổ làm việc đang hoạt động.
Từ thời điểm này, Excel chuyển đổi hành động của bạn thành mã VBA. Trong khi bạn đang ghi, biểu tượng trên thanh trạng thái biến thành một hình vuông nhỏ. Đây là một lời nhắc rằng máy ghi macro đang chạy. Bạn cũng có thể nhấp vào biểu tượng đó để dừng máy ghi macro.

6. Nhấp vào biểu tượng Trang tính mới ở bên phải của tab trang tính cuối cùng.
Excel chèn một bảng tính mới.

7. Chọn toàn bộ Cột K (cột thứ 11) và nhấn Ctrl + Shift + mũi tên phải; sau đó nhấp chuột phải vào bất kỳ cột đã chọn và chọn Ẩn từ menu phím tắt.
Excel ẩn tất cả các cột đã chọn.

8. Chọn toàn bộ Hàng 11 và nhấn Ctrl + Shift + mũi tên xuống; sau đó nhấp chuột phải vào bất kỳ hàng đã chọn và chọn Ẩn từ menu phím tắt.
Excel ẩn tất cả các cột đã chọn.

9. Chọn ô A1.

10. Chọn Nhà phát triển → Mã → Dừng ghi hoặc nhấp vào nút Dừng ghi trên thanh trạng thái (hình vuông nhỏ). Excel dừng ghi lại hành động của bạn.

Để xem macro mới được ghi này, nhấn Alt + F11 để kích hoạt VBE. Xác định tên của bảng tính trong cửa sổ Dự án. Bạn thấy rằng dự án có một mô-đun mới được liệt kê. Tên của mô-đun phụ thuộc vào việc bạn có bất kỳ mô-đun nào khác trong sổ làm việc khi bạn bắt đầu ghi macro. Nếu bạn không, mô-đun được đặt tên là Module1. Bạn có thể bấm đúp vào mô-đun để xem cửa sổ Mã cho mô-đun.

Đây là mã được tạo bởi hành động của bạn:

Sub TenByTen ()
'
'Macro TenByTen
'
'Phím tắt: Ctrl + Shift + T
'
Trang tính. Thêm sau: = ActiveSheet
Cột ("K: K"). Chọn
Phạm vi (Lựa chọn, Lựa chọn.End (xlToRight)). Chọn
Lựa chọn.EntireColumn.Hidden = True
Hàng ("11:11"). Chọn
Phạm vi (Lựa chọn, Lựa chọn.End (xlDown)). Chọn
Lựa chọn.EntireRow.Hidden = True
Phạm vi ("A1"). Chọn
Kết thúc phụ

Để thử macro này, hãy kích hoạt bất kỳ bảng tính nào và nhấn phím tắt mà bạn đã chỉ định trong Bước 4: Ctrl + Shift + T.

Nếu bạn không gán phím tắt cho macro, đừng lo lắng. Đây là cách hiển thị danh sách tất cả các macro có sẵn và chạy cái bạn muốn:

1. Chọn Nhà phát triển → Mã → Macro. Quạt bàn phím có thể nhấn Alt + F8.
Một trong hai phương thức này hiển thị một hộp thoại liệt kê tất cả các macro có sẵn.

2. Chọn macro trong danh sách (trong trường hợp này là TenByTen).

3. Nhấp vào nút Chạy.
Excel thực thi macro và bạn nhận được một bảng tính mới với mười hàng có thể nhìn thấy và mười cột hiển thị.

Bạn có thể thực thi bất kỳ số lượng lệnh nào và thực hiện bất kỳ số lượng hành động nào trong khi trình ghi macro đang chạy. Excel mạnh dạn dịch các hành động chuột và tổ hợp phím của bạn sang mã VBA.

Và, tất nhiên, bạn cũng có thể chỉnh sửa macro sau khi bạn ghi lại nó. Để kiểm tra các kỹ năng mới của bạn, hãy thử chỉnh sửa macro để nó chèn một bảng tính với chín hàng và cột có thể nhìn thấy – hoàn hảo cho câu đố Sudoku.

Sao chép mã VBA

Phương pháp cuối cùng để nhận mã vào mô-đun VBA là sao chép nó từ mô-đun khác hoặc từ một nơi khác (chẳng hạn như một trang web). Ví dụ, một thủ tục Sub hoặc Function mà bạn viết cho một dự án cũng có thể hữu ích trong một dự án khác. Thay vì lãng phí thời gian nhập lại mã, bạn có thể kích hoạt mô-đun và sử dụng các quy trình sao chép và dán Clipboard thông thường. (Bạn có thể thích các phím tắt Ctrl + C để sao chép và Ctrl + V để dán.) Sau khi dán mã vào mô-đun VBA, bạn có thể sửa đổi mã nếu cần.

Nhân tiện, bạn sẽ tìm thấy rất nhiều ví dụ mã VBA trên web. Nếu bạn muốn thử chúng, hãy chọn mã trong trình duyệt của bạn và nhấn Ctrl + C để sao chép nó. Sau đó kích hoạt một mô-đun và nhấn Ctrl + V để dán nó.

Khi bạn sao chép mã từ một trang web, đôi khi nó yêu cầu một số sửa chữa. Ví dụ, ký tự trích dẫn có thể là trích dẫn thông minh của người Viking và chúng phải được chuyển đổi thành ký tự trích dẫn đơn giản. Và đôi khi, những hàng dài quấn quanh. Các tuyên bố sai lệch rất dễ phát hiện trong VBE vì chúng xuất hiện màu đỏ.

Xem thêm: Tạo Báo cáo Tên bằng Mã VBA

Khóa học VBA Excel tại Hà Nội

LEAVE A REPLY

Please enter your comment!
Please enter your name here