Всех с наступающим праздником) Прошу подсказать как с помощью макросов в VBA сделать так, чтобы в пользовательской форме появилась возможность свернуть (свернуть форму, оставить значок на панели задач). я находил в интернете решение задачи для Excel 97 (не привожу ссылку чтобы не сочли за рекламу), привожу сами строчки:
[vba]
Код
Private Declare Function FindWindow _ Lib "user32.dll" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function ShowWindow _ Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal nCmdShow As Long) As Long Private Declare Function GetWindowLong _ Lib "user32.dll" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong _ Lib "user32.dll" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Sub UserForm_Show() Dim ihWnd As Long, iStyle As Long
iStyle = GetWindowLong(ihWnd, -16&) SetWindowLong ihWnd, -16&, iStyle Or &H20000 iStyle = GetWindowLong(ihWnd, -20&) SetWindowLong ihWnd, -20&, iStyle Or &H40000
ShowWindow ihWnd, 5& End Sub
[/vba]
но это не работает для более поздних версий Excel (отображается форма без кнопки свернуть) Спасибо)
[moder]Кнопка # есть на панели инструментов в форме, где Вы пишете сообщение. Исправила. А значки # на досуге поубираете[/moder] [ответ модеру] Спасибо большое! С наступающим! [/ответ модеру]
Всех с наступающим праздником) Прошу подсказать как с помощью макросов в VBA сделать так, чтобы в пользовательской форме появилась возможность свернуть (свернуть форму, оставить значок на панели задач). я находил в интернете решение задачи для Excel 97 (не привожу ссылку чтобы не сочли за рекламу), привожу сами строчки:
[vba]
Код
Private Declare Function FindWindow _ Lib "user32.dll" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function ShowWindow _ Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal nCmdShow As Long) As Long Private Declare Function GetWindowLong _ Lib "user32.dll" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong _ Lib "user32.dll" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long
Private Sub UserForm_Show() Dim ihWnd As Long, iStyle As Long
iStyle = GetWindowLong(ihWnd, -16&) SetWindowLong ihWnd, -16&, iStyle Or &H20000 iStyle = GetWindowLong(ihWnd, -20&) SetWindowLong ihWnd, -20&, iStyle Or &H40000
ShowWindow ihWnd, 5& End Sub
[/vba]
но это не работает для более поздних версий Excel (отображается форма без кнопки свернуть) Спасибо)
[moder]Кнопка # есть на панели инструментов в форме, где Вы пишете сообщение. Исправила. А значки # на досуге поубираете[/moder] [ответ модеру] Спасибо большое! С наступающим! [/ответ модеру]flash708
Сообщение отредактировал flash708 - Понедельник, 29.12.2014, 13:22
Спасибо за ссылку но к сожалению не получилось (выводится сообщение Compile Error) Если не трудно, не могли бы вы привести листинг конкретной программы, добавляющей кнопку Свернуть
Спасибо за ссылку но к сожалению не получилось (выводится сообщение Compile Error) Если не трудно, не могли бы вы привести листинг конкретной программы, добавляющей кнопку Свернутьflash708
Как альтернатива, если не получится, можно запустить окно в режиме UserForm1.Show vbModeless, тогда у вас несмотря на открытую форму будет доступ к ячейкам.
Как альтернатива, если не получится, можно запустить окно в режиме UserForm1.Show vbModeless, тогда у вас несмотря на открытую форму будет доступ к ячейкам.Leanna
Лучше день потерять, потом за пять минут долететь!
спасибо, свернуть/развернуть получилось) но почему-то крестик (закрыть) перестал работать. может добавить простую кнопку с процедурой типа Unload me? хотя если добавите функционирование на крестик (закрыть) то было бы еще интересней) заранее спасибо.
спасибо, свернуть/развернуть получилось) но почему-то крестик (закрыть) перестал работать. может добавить простую кнопку с процедурой типа Unload me? хотя если добавите функционирование на крестик (закрыть) то было бы еще интересней) заранее спасибо.flash708