AW: doch das geht
08.03.2010 14:44:34
Detlef
Hallo Patrick,
versuch's mal mit folgendem Add-In.
https://www.herber.de/bbs/user/68463.xla
Der Code ist nicht geschützt.
Modul Modul1
Private Const SM_CXSCREEN = 0
Private Const CB_SETDROPPEDWIDTH = &H160
Private Declare Function GetSystemMetrics _
Lib "user32.dll" ( _
ByVal nIndex As Long) As Long
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Declare Function FindWindowEx _
Lib "user32" _
Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Sub NamensfeldBreiter()
Dim hWndExcel As Long, hWndFormBar As Long
Dim hWndNamebox As Long, lngScreenX As Long
Dim lngNewWidth As Long, R As Variant
hWndExcel = FindWindow("XLMAIN", vbNullString)
hWndFormBar = FindWindowEx(hWndExcel, _
0, "EXCEL;", vbNullString)
hWndNamebox = FindWindowEx(hWndFormBar, _
0, "ComboBox", vbNullString)
lngScreenX = GetSystemMetrics(SM_CXSCREEN)
lngNewWidth = lngScreenX \ 3
R = SendMessage(hWndNamebox, CB_SETDROPPEDWIDTH, _
lngNewWidth, 0)
If R = 0 Then
MsgBox "Namensfeld konnte nicht verbreitert werden", _
vbExclamation, "Fehler"
End If
End Sub
Gruß Detlef