- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,705
- Giới tính
- Nam
Tôi biết chắc chắn rằng trong chúng ta, đôi lúc các bạn cũng gặp vấn đề về macro shortcut, chính vì vậy tôi xin viết bài về vấn đề này. Các ví dụ được tác giả thực hiện trên Excel 2007 và lưu dưới định dạng Excel 2003.
Bây giờ các bạn hãy mở một tập tin Excel mới (Ctrl + N) và lưu dưới dạng Excel 2003. Giả sử tôi lưu với tên TestShortCut.xls
Tại ô B3 tôi nhập chuổi abc.
Bạn hãy vào tab Developer.
Nếu không thấy tab này thì bạn hãy cho hiện tab này bằng cách vào Excel Options
Và cho hiện nó bằng cách chọn vào Show Developer tab in the Ribbon
Tôi muốn tạo một macro sẽ làm chữ in đậm (bold).
Bây giờ tôi nhấn vào nút Record Macro
Một hộp thoại khác sẽ xuất hiện yêu cầu bạn nhập vào các thông tin như: Macro name (tên macro), Shortcut key (phím tắt để gọi macro này), Store macro in (lưu macro này ở đâu – trong ví dụ chúng ta sẽ chọn This Workbook).
Tôi nhập vào như sau:
Macro name: BoldText; Shortcut key: tôi chọn B (chữ hoa) tự động hệ thống sẽ tạo cho bạn shortcut là Ctrl+Shift+B. Sau đó các bạn nhấn nút OK.
Tại vị trí B3, bạn hãy chọn bold cho ô này (phím tắt là Ctrl + B). Sau đó bạn ngừng ghi macro bằng cách nhấn vào nút Stop Recording trên tab Developer hoặc trên thanh trạng thái như hình sau:
Bạn hãy vào cửa số VBE (Visual Basic for Editor – Nhấn tổ hợp phím Alt + F11 hoặc nhấn vào nút Visual Basic ở tab Developer hoặc thanh trạng thái) bạn sẽ thấy Excel sẽ tự tạo ra một module có tên là Module1, với đoạn code như hình sau:
Các bạn sẽ hỏi, tại sao lại là Module1 không là một tên nào khác, cái này thì chờ tôi hỏi Mr.Bill Gate. Bạn có thể thay đổi tên của module này bằng cách thay đổi tên nó ở cửa số Properties (góc trái bên dưới như hình trên).
Nếu bạn tiếp tục tạo ra các macro khác thì các macro sẽ được lưu liên tục trong Module1 này.
Bây giờ các bạn hãy đóng tập tin này lại và mở ra. Tạo một macro khác, lưu lại, khi mở ra các bạn sẽ thấy Excel sẽ tự động tạo ra một module có tên là Module2 và lưu macro mới này ở đây.
Nào, các bạn hãy click phải vào Module1 và chọn Export File (hoặc vào File>Export File)
Nhớ lưu với tên Module1 trong cùng thư mục với tập tin Excel của chúng ta cho dễ dàng tham khảo.
Bây giờ các bạn hãy vào thư mục mới vừa lưu, chọn tập tin Module1.bas và mở với chương trình Notepad. (Click phải chuột chọn Open With rồi chọn Notepad).
Các bạn sẽ thấy nội dung như sau:
Bây giờ các bạn hãy xóa dòng
Và sau đó lưu lại.
Bước tiếp theo, các bạn hãy vào lại màn hình VBE, lập lại bước xuất Module1 ở trên nhưng với tên Module1_Luu.
Click phải chuột vào module Module1 và chọn Remove Module1.
Bây giờ các bạn lại Import Module chúng ta mới vừa sửa ở trên (xóa bớt hàng).
Các bạn hãy ra ngoài cửa sổ Excel và hãy thử Shortcut Ctrl + Shift + B, các bạn sẽ thấy rằng tổ hợp phím này không còn tác dụng.
Điều này nói lên hàng chúng ta vừa xóa lưu lại phím nóng của macro này.
Các bạn hãy thử mở lại tập tin Module1 mà chúng ta vừa xóa hàng này, nhập lại hàng này, lưu lại. Vào lại VBE, Import lại module này, các bạn sẽ thấy tổ hợp phím nóng để gọi macro này có tác dụng.
Có bạn sẽ hỏi, thế còn dòng chữ: Keyboard Shortcut: Ctrl+Shift+B có tác dụng gì?
Xin thưa đây chỉ là dòng ghi chú mà thôi.
Đây chính là lý do, nếu bạn chỉ copy đoạn code này qua một module khác (mặc dù cái dòng ghi chú này) nhưng short cut sẽ không có tác dụng.
(Còn tiếp)
Lê Văn Duyệt
Bây giờ các bạn hãy mở một tập tin Excel mới (Ctrl + N) và lưu dưới dạng Excel 2003. Giả sử tôi lưu với tên TestShortCut.xls
Tại ô B3 tôi nhập chuổi abc.
Bạn hãy vào tab Developer.
Nếu không thấy tab này thì bạn hãy cho hiện tab này bằng cách vào Excel Options
Và cho hiện nó bằng cách chọn vào Show Developer tab in the Ribbon
Tôi muốn tạo một macro sẽ làm chữ in đậm (bold).
Bây giờ tôi nhấn vào nút Record Macro
Một hộp thoại khác sẽ xuất hiện yêu cầu bạn nhập vào các thông tin như: Macro name (tên macro), Shortcut key (phím tắt để gọi macro này), Store macro in (lưu macro này ở đâu – trong ví dụ chúng ta sẽ chọn This Workbook).
Tôi nhập vào như sau:
Macro name: BoldText; Shortcut key: tôi chọn B (chữ hoa) tự động hệ thống sẽ tạo cho bạn shortcut là Ctrl+Shift+B. Sau đó các bạn nhấn nút OK.
Tại vị trí B3, bạn hãy chọn bold cho ô này (phím tắt là Ctrl + B). Sau đó bạn ngừng ghi macro bằng cách nhấn vào nút Stop Recording trên tab Developer hoặc trên thanh trạng thái như hình sau:
Bạn hãy vào cửa số VBE (Visual Basic for Editor – Nhấn tổ hợp phím Alt + F11 hoặc nhấn vào nút Visual Basic ở tab Developer hoặc thanh trạng thái) bạn sẽ thấy Excel sẽ tự tạo ra một module có tên là Module1, với đoạn code như hình sau:
Các bạn sẽ hỏi, tại sao lại là Module1 không là một tên nào khác, cái này thì chờ tôi hỏi Mr.Bill Gate. Bạn có thể thay đổi tên của module này bằng cách thay đổi tên nó ở cửa số Properties (góc trái bên dưới như hình trên).
Nếu bạn tiếp tục tạo ra các macro khác thì các macro sẽ được lưu liên tục trong Module1 này.
Bây giờ các bạn hãy đóng tập tin này lại và mở ra. Tạo một macro khác, lưu lại, khi mở ra các bạn sẽ thấy Excel sẽ tự động tạo ra một module có tên là Module2 và lưu macro mới này ở đây.
Nào, các bạn hãy click phải vào Module1 và chọn Export File (hoặc vào File>Export File)
Nhớ lưu với tên Module1 trong cùng thư mục với tập tin Excel của chúng ta cho dễ dàng tham khảo.
Bây giờ các bạn hãy vào thư mục mới vừa lưu, chọn tập tin Module1.bas và mở với chương trình Notepad. (Click phải chuột chọn Open With rồi chọn Notepad).
Các bạn sẽ thấy nội dung như sau:
Bây giờ các bạn hãy xóa dòng
Mã:
Attribute BoldText.VB_ProcData.VB_Invoke_Func = “B\n14”
Bước tiếp theo, các bạn hãy vào lại màn hình VBE, lập lại bước xuất Module1 ở trên nhưng với tên Module1_Luu.
Click phải chuột vào module Module1 và chọn Remove Module1.
Bây giờ các bạn lại Import Module chúng ta mới vừa sửa ở trên (xóa bớt hàng).
Các bạn hãy ra ngoài cửa sổ Excel và hãy thử Shortcut Ctrl + Shift + B, các bạn sẽ thấy rằng tổ hợp phím này không còn tác dụng.
Điều này nói lên hàng chúng ta vừa xóa lưu lại phím nóng của macro này.
Các bạn hãy thử mở lại tập tin Module1 mà chúng ta vừa xóa hàng này, nhập lại hàng này, lưu lại. Vào lại VBE, Import lại module này, các bạn sẽ thấy tổ hợp phím nóng để gọi macro này có tác dụng.
Có bạn sẽ hỏi, thế còn dòng chữ: Keyboard Shortcut: Ctrl+Shift+B có tác dụng gì?
Xin thưa đây chỉ là dòng ghi chú mà thôi.
Đây chính là lý do, nếu bạn chỉ copy đoạn code này qua một module khác (mặc dù cái dòng ghi chú này) nhưng short cut sẽ không có tác dụng.
(Còn tiếp)
Lê Văn Duyệt
Lần chỉnh sửa cuối: