Macro là một cách tuyệt vời để mở rộng chức năng của một chương trình chẳng hạn như Excel. Tuy nhiên, bạn có thể muốn mở rộng chức năng đó hơn nữa bằng cách thực thi một tệp loạt DOS từ macro của bạn. Excel cho phép bạn làm điều này bằng cách sử dụng lệnh Shell. Cú pháp chung của lệnh như sau:

dRetVal = Shell("myfile.bat", mode)

Trong dấu ngoặc kép, bạn có thể đặt tên đường dẫn đầy đủ và tên tệp của tệp bạn muốn thực thi. Trên một số hệ thống, bạn có thể gặp sự cố nếu sử dụng tên đường dẫn với đặc tả tệp. (Điều này dường như cắt bớt phần đầu xấu xí của nó nếu bạn có tên đường dẫn phức tạp hoặc nếu tên đường dẫn bao gồm khoảng trắng.) Nếu bạn gặp sự cố này, thì chỉ cần sử dụng lệnh ChDir ngay trước Shell để thay đổi thư mục được Excel sử dụng. Sau đó, bạn có thể thực thi Shell chỉ bằng một tên tệp.

Chỉ báo chế độ chỉ cho Excel biết bạn muốn cửa sổ mở tệp xuất hiện như thế nào. Chỉ báo chế độ có thể là bất kỳ chỉ báo nào sau đây:

Value

Variable Nam

Meaning

0

vbHide

Window is hidden and has focus.

1

vbNormalFocus

Window is the normal size and has focus.

2

vbMinimizedFocus

Window is minimized and has focus.

3

vbMaximizedFocus

Window is maximized and has focus.

4

vbNormalNoFocus

Window is normal size, but doesn’t have

focus.

6

vbMinimizedNoFocus

Window is minimized, but doesn’t have

focus.

Lệnh Shell trả về một giá trị cho biết ID chương trình của tệp bạn đã thực thi hoặc nếu không. Nếu trả về số 0, thì đã xảy ra lỗi khi thực thi tệp.

Bạn nên nhớ rằng khi bạn sử dụng Shell, tệp đích sẽ được thực thi ngay lập tức và nó được thực thi độc lập với Excel. Điều này có nghĩa là lệnh macro tiếp theo, trong macro Excel của bạn, được thực thi ngay lập tức mà không cần đợi tệp đích Shell kết thúc. Nếu bạn cần một cách giải quyết hành vi này, bạn có thể quan tâm đến trang này tại trang web của Chip Pearson:

http://www.cpearson.com/excel/ShellAndWait.aspx

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (9843) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: