Nhiều máy in hiện có trên thị trường ngày nay có một số khả năng tuyệt vời. Hầu hết các khả năng này đều có thể truy cập được bằng cách sử dụng hộp thoại In và nhấp vào nút Thuộc tính bên cạnh tên máy in. Khi bạn đang phát triển các macro của riêng mình, bạn có thể tự hỏi liệu có thể truy cập các khả năng này từ bên trong macro hay không.

Thật không may, có vẻ như điều này không thể được thực hiện bởi vì trình điều khiển máy in thường không cung cấp các tính năng của máy in theo cách có thể hiểu và truy cập từ mô hình đối tượng được sử dụng bởi VBA. (Cậu bé, thật là ngon miệng!) Thay vào đó, bạn sẽ phải sử dụng API Windows thực tế và thậm chí sau đó không phải tất cả các tính năng đều có thể truy cập được.

Tuy nhiên, có một số giải pháp thay thế có thể được sử dụng. Bạn có thể sử dụng VBA để chọn các máy in khác nhau mà bạn có thể định hướng đầu ra của mình. Điều này có nghĩa là bạn có thể tạo các định nghĩa máy in khác nhau — trong Windows — và sau đó sử dụng các định nghĩa đó làm mục tiêu cho đầu ra của bạn.

Ví dụ: bạn có thể sử dụng thư mục Máy in trong Windows để thiết lập máy in có tên HP Regular Paper. Định nghĩa máy in đó có thể được đặt để in trên giấy thường, theo mặc định. Sau đó, bạn có thể thiết lập định nghĩa máy in khác có tên HP Glossy Paper và đặt nó để in, theo mặc định, vào khay có thể chứa giấy bóng. Với hai máy in được xác định, bạn có thể sử dụng VBA để chuyển đổi giữa hai máy in. Ví dụ: nếu bạn muốn in định nghĩa máy in cho giấy bóng, bạn có thể sử dụng như sau trong macro của mình:

Application.ActivePrinter = "HP Glossy Paper"

_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 (2530) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: