Тема: Visual Basic и VBA
[b]Visual Basic[/b] и Visual Basic for Applications
Обсуждение ситуаций, вопросы и решения, листинги.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Общение на сайте woodrex → Программирование → Visual Basic и VBA
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
[b]Visual Basic[/b] и Visual Basic for Applications
Обсуждение ситуаций, вопросы и решения, листинги.
[h][color=#F57900]Ситуация:[/color][/h]При открытии рабчей книги Excel запускается автоматически форма диалогового окна.
Всё великолепно, но надо было сделать так, что-бы само приложение "Свернулось" в "Панель задач", а диалоговое окно осталось и в нём можно было работать.
[b][color=#4E9A06]Решение:[/color][/b]
В самой рабочей книге написать код
[color=#CC0000]НЕ правильное[/color] решение:
Private Sub Workbook_Open()
frmXxxxxx.Show 'открытие формы
Application.WindowState = xlMinimized 'свёртывание приложения
End Sub
А вот это – [b]ПРАВИЛЬНОЕ[/b] решение:
Private Sub Workbook_Open()
Application.WindowState = xlMinimized 'свёртывание приложения
frmXxxxxx.Show 'открытие формы
End Sub
[h][color=#F57900]Убрать кнопку «Закрыть»[/color][/h]
Чтобы из формы убрать кнопку «[b]Закрыть[/b]» (Х)
просто скопируйте и вставьте код в форму
(лучше в начало)
Private Declare Function FindWindow _
Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) 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_Initialize()
Dim ihWnd As Long, iStyle As Long
ihWnd = FindWindow(vbNullString, Me.Caption)
iStyle = GetWindowLong(ihWnd, -16&)
SetWindowLong ihWnd, -16&, iStyle And Not &H80000
End Sub
[h][color=#CE5C00]ScrollBars[/color][/h]
Если вы в своей форме хотите использовать [b]ScrollBars[/b], но он не хочет работать, то пропишите следующие строки:
Private Sub UserForm_Activate()
frmXXXXX.ScrollHeight = 2 * frmXXXXX.Height [color=#4E9A06]' для вертикальной прокрутки[/color]
frmXXXXX.ScrollWidth = 2 * frmXXXXX.Width [color=#4E9A06]' для горизонтальной прокрутки[/color]
[color=#4E9A06]' ваш код ..............[/color]
End Sub
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Общение на сайте woodrex → Программирование → Visual Basic и VBA
woodrex.top