| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Вызвать макрос и передать параметры из VB |
| Автор: dobbro 22.8.2011, 15:23 |
| Добрый день. Есть необходимость вызывать уже готовый, отлаженный макрос из кода VB. Смысл такой - юзер вводит в TextBox-ы значения какие то, я их читаю, присваиваю переменным, а потом эти переменные нужно передать в макрос. Макрос должен сработать. Назад в программу ничего не передается. Ну или буду передавать "ОК" там какой-нибудь. Как мне это сделать. Учебники читать я бросил, т.к. там хрень пишут иногда такую, что можно 2 суток сидеть в недоумении. Заранее спасибо! |
| Автор: CaptainNemo 23.8.2011, 00:58 | ||
dobbro,
Не совсем понятен вопрос. Хотите из программы, написанной на VB6 (VB.NET) запускать MS Office и передавать параметры в макрос? Или речь идет исключительно о VBA? |
| Автор: dobbro 23.8.2011, 08:31 | ||
да. именно так. просто макрос был написан уже давно. сейчас захотел скомпилировать exe-к чтобы не мучиться с этими макросами... Проще всего как то интегрировать форму мою с макросом. Чтобы всю прогу не переписывать. |
| Автор: Staruha 23.8.2011, 09:37 |
| Если форму пишешь на VB6 то за кодом туда иди.Если на делфи в xl могу скинуть |
| Автор: dobbro 23.8.2011, 09:41 | ||
давай на делфи. мне все равно, главное чтобы работало |
| Автор: Staruha 23.8.2011, 09:54 |
| Могу только вечером.Все дома.Можешь на Делфи сходить там эта тема обсуждалась.А данные ты кидаешь не в макрос а в ячейки.Оттуда потом макрос или в переменные |
| Автор: dobbro 23.8.2011, 10:08 | ||
так, а как же моя прога инициирует запуск макроса тогда? Если из проги данные писать в ячейки активной книги, то просто конечно получается. Но как эту книгу открыть и запустить макрос на выполнение после того, как прога заполнит соответствующие ячейки? |
| Автор: Akina 23.8.2011, 11:43 |
| dobbro, подключи соотв. референсную библиотеку, создай объект соотв. приложения, и работай с ним из VB так, как будто ты всё ещё внутри Офиса и пишешь на VBA. Заноси значения в ячейки, вызывай подпрограммы с параметрами и пр. |
| Автор: dobbro 23.8.2011, 14:15 | ||
я бы так и сделал, если бы знал что и как подключать... |
| Автор: Akina 23.8.2011, 14:58 |
| См. аттач. |
| Автор: Staruha 23.8.2011, 21:15 | ||
Вот из едита кидаешь в ячейку 1.Смотришь с какими ячейками работает макрос и можешь кинуть данные туда |
| Автор: dobbro 24.8.2011, 08:28 | ||
Akina, ссылку подключил. теперь бы понять как объект создать... я в VB 1 раз пишу, так что помощь нужна... |
| Автор: Akina 24.8.2011, 08:30 | ||
|
| Автор: dobbro 24.8.2011, 08:39 | ||
а дальше что? как с ним потом работать? 1 пример, чтобы я понял плиз |
| Автор: Akina 24.8.2011, 09:40 | ||
А дальше в поиск по форуму... там и примеры есть. |
| Автор: dobbro 24.8.2011, 09:40 | ||
Так, тут разобрался. теперь трабл вот в чем:
дает ошибку: "Ошибка 1 "Public Property Left() As Double" не имеет параметров, поэтому невозможно проиндексировать возвращаемый им тип. C:\Users\никс\Documents\Visual Studio 2008\Projects\Price_Corrector\Price_Corrector\Form1.vb 25 35 Price_Corrector" хз че делать. с xl.Right и xl.Mid проблем нет никаких. А вот тут... |
| Автор: dobbro 24.8.2011, 10:26 |
| тоже разобрался. там как раз таки почему то нужно было писать Microsoft.VisuaBasic.Left... |
| Автор: Akina 24.8.2011, 10:30 |
| dobbro, у тебя VB.Net, что ли? |
| Автор: dobbro 24.8.2011, 11:08 |
| Да. Теперь другая проблема... как мне открыть книгу? xl.Workbooks.Open("D:\Experiment_1.xls") не помогает |
| Автор: Akina 24.8.2011, 11:24 |
Что - да? VB.Net? а если так - то что ж ты его кодом для VB6 мучаешь? Шагай уже в раздел по .Net, что ли... |