Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 8

Передача управления кодом от vb6 к vba и обратно

09.03.2015, 20:57. Показов 1371. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я написал небольшую программку на vb6, которая создает форму, контролирующую доступ пользователей к базе данных (в формате xl), формирующую список объектов, позволяющую выбрать необходимый объект (определенный лист книги xl) и собственно запустить приложение Excel, создав новую книгу и скопировав в нее нужный лист. С этими задачами я справился. Никак не разберусь со следующей задачей:
- как перед "показом" листа Excel убрать форму с экрана, а после выхода из Excel вновь показать форму и продолжить работу в ней, другими словами, как понять, что Excel отработал и vb6 пора принимать управление процессом на себя?
Заранее благодарен.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2015, 20:57
Ответы с готовыми решениями:

Передача данных из VBA на форму VB6.0
Здравствуйте!Подскажите пожалуйста ,как можно передать значение переменной из VBA на форму VB6.0?

Установка флажка (элемент управления формы) кодом vba
Здравствуйте, уважаемые знатоки! Ситуация такая: есть анкета, реализованная в excel с помощью элементов управления формы, в частности...

Передача параметров из asm в VBA и обратно
Sorry коллеги, может пустяковая тема, но на форуме почему то не нашел (может плохо искал). очень удобная оболочка для разработки офисных...

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38168 / 21103 / 4307
Регистрация: 12.02.2012
Сообщений: 34,692
Записей в блоге: 14
09.03.2015, 21:46
А как запускается Excel?
0
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 8
09.03.2015, 21:53  [ТС]
Из vb6
Visual Basic
1
2
3
CreateObject ("Excel.Application")
Application.Workbooks.Open (PATH_TO_FILES & MANAGMENT_ACCOUNT_FILE)
Application.Visible = True
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.03.2015, 21:55
Цитата Сообщение от lae1965 Посмотреть сообщение
а после выхода из Excel вновь показать форму и продолжить работу в ней
Какое событие определяет "выход из Excel"? Закрытие приложения? Или книги? Или что-то еще?
0
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 8
09.03.2015, 22:04  [ТС]
Я перехватываю закрытие книги с помощью vba (Workbook_BeforeClose) и сохраняю определенным образом в базу. Вопрос в том, что мой код vb6 этого не понимает. Как ему "сказать", что я уже вышел из книги и пора ему продолжать работать?
0
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
09.03.2015, 22:42
Из VBA вставляете в буфер обмена WIN определённое слово, а из VB6 периодически читаете что в буф.обмена WIN, и прочитав заранее обусловленное слово продолжаете работу VB6..
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.03.2015, 23:22
Лучший ответ Сообщение было отмечено lae1965 как решение

Решение

Ну зачем так... События Excel можно обрабатывать в VB6, VBA собственно не нужен.
Создайте форму с кнопкой, в Project - References подключите библиотеку Microsoft Excel xx.x Object Library и попробуйте такой код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
Попробуйте обрабатывать и другие события Excel - в левом выпадающем списке над кодом выберите xlApp, в правом список событий.
4
0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 8
10.03.2015, 11:44  [ТС]
Большое спасибо! Свою программу еще не доделал, но Ваш код обкатал, принцип понял, теперь все получится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.03.2015, 11:44
Помогаю со студенческими работами здесь

Преобразование файла в текстовый с двоичным кодом и обратно!
Помогите с программой для преобразования в текстовый файл с двоичным кодам и обратно! если такая есть подскажите как называется и где...

В VB6 отсутствует элемент управления tabstrip
У меня на панели инсрументов VB6 отсутствует элемент управления tabstrip. Пытался подключить билиотеку microsoft forms 2.0 object library....

VB6 и VBA: в чем их различия
в чем их различия ? (я чайник не обижайтесь...)

Передача структур из VB6 в C++
Всем доброго дня. В общем создаю структуры на VB: Public Type STVAR var1 As Double var2 As Double var3 As Double ...

Как переделать код VB6 под VBA?
Здравствуйте! Прошу помощи. Если есть типовой короткий рабочий код для Visual Basic 6.0, то как его переделать под VBA (Excel). Option...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru