Передача управления кодом от 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5