Передача управления кодом от vb6 к vba и обратно
Формулировка задачи:
Здравствуйте!
Я написал небольшую программку на vb6, которая создает форму, контролирующую доступ пользователей к базе данных (в формате xl), формирующую список объектов, позволяющую выбрать необходимый объект (определенный лист книги xl) и собственно запустить приложение Excel, создав новую книгу и скопировав в нее нужный лист. С этими задачами я справился. Никак не разберусь со следующей задачей:
- как перед "показом" листа Excel убрать форму с экрана, а после выхода из Excel вновь показать форму и продолжить работу в ней, другими словами, как понять, что Excel отработал и vb6 пора принимать управление процессом на себя?
Заранее благодарен.
Решение задачи: «Передача управления кодом от vb6 к vba и обратно»
textual
Листинг программы
Option Explicit
Dim WithEvents xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Private Sub Command1_Click()
Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open("c:\temp\Лист1.xls") '==== путь к книге
xlApp.Visible = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
xlApp.Quit
End Sub
Private Sub xlApp_WorkbookBeforeClose(ByVal wb As Excel.Workbook, Cancel As Boolean)
If wb Is xlWb Then
xlApp.Visible = False
If MsgBox("VB6 - Вы уверены, что хотите закрыть книгу?", vbYesNo) = vbNo Then
Cancel = True
MsgBox "VB6 - ОК, продолжаем"
xlApp.Visible = True
Exit Sub
Else
xlApp.EnableEvents = False
wb.Close True 'закрыть с сохранением
xlApp.Quit
End If
End If
End Sub