Mega Code Archive

 
Categories / VisualBasic Script / Windows API
 

Show Excel Window Size

Private Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal ClassName As String, ByVal WindowName As String) As Long Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long,Rect As Rect) As Long Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, ByVal Source As Long, ByVal MessageId As Long, ByVal LanguageId As Long, ByVal Buffer As String, ByVal Size As Long, ByVal Arguments As Long) As Long Private Type Rect   Left As Long   Top As Long   Right As Long   Bottom As Long End Type Sub ShowExcelWindowSize()   Dim hWnd As Long   Dim aRect As Rect      hWnd = FindWindow("XLMAIN", Application.Caption)   If hWnd = 0 Then     Call MsgBox(LastDLLErrText(Err.LastDllError))   Else     Call GetWindowRect(hWnd, aRect)       Debug.Print " Left: " & aRect.Left        Debug.Print " Right: " & aRect.Right        Debug.Print " Top: " & aRect.Top       Debug.Print " Bottom: " & aRect.Bottom        Debug.Print " Width: " & (aRect.Right - aRect.Left)        Debug.Print " Height: " & (aRect.Bottom - aRect.Top)   End If End Sub Function LastDLLErrText(ByVal ErrorCode As Long) As String   Dim Buffer As String * 255   Dim Result As Long   Result = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&, ErrorCode, 0, Buffer, 255, 0)   LastDLLErrText = Left(Buffer, Result) End Function