Christopher cần, trong một macro, để đặt kích thước của cửa sổ chương trình Excel. Anh ấy biết cách đặt kích thước của trang tính trong cửa sổ chương trình, nhưng đó không phải là thứ anh ấy cần. Anh ấy tự hỏi làm thế nào anh ấy có thể đặt kích thước tổng thể của cửa sổ chương trình, cộng với đảm bảo rằng anh ấy không đặt nó lớn hơn kích thước màn hình thực của người dùng.

Điều này có thể được thực hiện khá dễ dàng nếu người ta biết đối tượng và thuộc tính nào sẽ sử dụng trong macro của bạn. Đối tượng bạn muốn sử dụng là đối tượng Ứng dụng, dùng để chỉ ứng dụng Excel. Đây là các thuộc tính thích hợp:

Trên cùng. * Pixel màn hình mà tại đó cạnh trên cùng của cửa sổ ứng dụng sẽ được đặt.

Left. * Pixel màn hình mà tại đó cạnh trái của cửa sổ ứng dụng sẽ được đặt.

Chiều rộng. * Chiều rộng của cửa sổ ứng dụng, tính bằng pixel.

Chiều cao. * Chiều cao của cửa sổ ứng dụng, tính bằng pixel.

Với những điều này, bạn có thể đặt vị trí và kích thước của cửa sổ chương trình theo cách sau:

Sub SetWindowSize1()

Application.WindowState = xlNormal     Application.Top = 25     Application.Left = 25     Application.Width = 300     Application.Height = 200 End Sub

Macro này chỉ định góc trên bên trái của cửa sổ chương trình là 25 pixel từ đầu màn hình và 25 pixel từ bên trái màn hình. Sau đó, cửa sổ chương trình được thiết lập rộng 300 pixel và cao 200 pixel. Cũng cần lưu ý, cài đặt thuộc tính WindowState ở đầu macro. Điều này đặt cửa sổ ở trạng thái “bình thường”, nghĩa là cửa sổ có thể được thay đổi kích thước thành một thứ lớn hơn mức thu nhỏ và nhỏ hơn mức tối đa. (Nếu bạn muốn cửa sổ chương trình Excel chiếm toàn bộ màn hình của chúng, chỉ cần đặt thuộc tính WindowState thành xlMaximized và quên phần còn lại của cài đặt trong macro.)

Tất nhiên, macro này đặt cửa sổ chương trình Excel khá nhỏ.

Có khả năng là bạn sẽ muốn nó lớn hơn, nhưng bạn không muốn nó lớn hơn kích thước màn hình của người dùng. Cách dễ nhất để tìm ra kích thước màn hình của người dùng là chỉ cần phóng to cửa sổ ứng dụng Excel và sau đó xem các thuộc tính Chiều rộng và Chiều cao. Sau đó, bạn có thể điều chỉnh các số liệu đó dựa trên vị trí bạn muốn đặt góc trên bên trái của màn hình và sau đó điều chỉnh cho phù hợp.

Ví dụ, giả sử bạn muốn cửa sổ chương trình bắt đầu ở 25, 50 và bạn muốn nó là 1000 x 500. Bạn có thể sử dụng mã tương tự như sau:

Sub SetWindowSize2()

Dim iMaxWidth As Integer     Dim iMaxHeight As Integer     Dim iStartX As Integer     Dim iStartY As Integer     Dim iDesiredWidth As Integer     Dim iDesiredHeight As Integer

iStartX = 50      ' Distance from left     iStartY = 25      ' Distance from top     iDesiredWidth = 1000     iDesiredHeight = 500

With Application         .WindowState = xlMaximized         iMaxWidth = Application.Width         iMaxHeight = Application.Height

' Adjust for starting point         iMaxWidth = iMaxWidth - iStartX         iMaxHeight = iMaxHeight - iStartY         If iDesiredWidth > iMaxWidth Then             iDesiredWidth = iMaxWidth         End If         If iDesiredHeight > iMaxHeight Then             iDesiredHeight = iMaxHeight         End If

.WindowState = xlNormal         .Top = iStartY         .Left = iStartX         .Width = iDesiredWidth         .Height = iDesiredHeight     End With End Sub

_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 (10938) á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: