powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск макроса на выполнение не из VB
11 сообщений из 11, страница 1 из 1
Запуск макроса на выполнение не из VB
    #35004363
Adanos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ActiveX обьект я создаю в С++, сформировал файл с текстом макроса, как сделать так чтобы этот макрос выполнился ,например, для активной книги??помогите,плз.
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35004406
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveWorkbook, ну и про thisworkbook почитайте.
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35004504
Adanos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня интересует не как получить доступ к активной книге, а как запустить макрос на выполнение не из Excel, а из своей проги
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35004741
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достучаться к нему вы можете только через объект Excel, создав его. Но сделав это, вы уже автоматизируете Excel, и можете продолжать им манипулировать из своей программы, написанной на С++, вместо того, чтоб пытаться выполнить эти действия через внедрение кода. На пути последнего вам встретятся, как минимум, антивирусные программы и требование доверительного уровня доступа к VBA проектам Excel
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35004805
Adanos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас большой проект, и работа с ActiveX идёт через уже написанные функции , которые некто менять не будет, они почему-то работают медленней чем в VB (скорость очень важна), вот думаю как обойти эту проблему.
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35004989
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делайте код на VBA в отдельной книге (надстройке и т.д.). При работе открывайте её, передавайте название той книги какую обработать и запускайте программу извне. Excel и будет по поручению работать как надо.
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35005000
Adanos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно кусочек кода??
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35005108
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может это даст какие-нибудь идеи:

Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
'------------In a standard module-----------
'Sample code that creates the file Test.vbs in the c:\ directory
'The resulting file, when executed, will open *.xls and will
'launch the procedure "MyMacro" stored in one of *.xls file's
'standard modules.

Sub CreateVBSFile()
    Dim strTxt As String
    Dim strFileName As String
    Dim objFS As Object, objFile As Object

    'Establish the path and the name of the *.vbs file
    strFileName = "C:\Test.vbs"

    'Create the procedure body
    strTxt = _
        strTxt & "Set myApp = WScript.CreateObject(""Excel.Application"")" & Chr( 13 )
    strTxt = _
        strTxt & "Set myBook = myApp.WorkBooks.Open(""" & _
            ThisWorkbook.FullName & """)" & Chr( 13 )
    strTxt = _
        strTxt & "myApp.Run(""MyMacro"")" & Chr( 13 )
    strTxt = _
        strTxt & "Set myBook=nothing" & Chr( 13 )
    strTxt = _
        strTxt & "myApp.Quit" & Chr( 13 )
    strTxt = _
        strTxt & "Set myApp = Nothing"

    'Create the *.vbs file and fill it with code
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFS.CreateTextFile(strFileName, True)
    objFile.WriteLine (strTxt)
    objFile.Close
End Sub

'The procedure to be invoked by *.vbs
Sub MyMacro()
    MsgBox "Hello World!"
End Sub
'------------End of code-----------

Sub test()
    CreateVBSFile
    Shell "cscript //nologo C:\Test.vbs"
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35005416
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)Может это даст какие-нибудь идеи:Мне почему-то кажется, что ты дал решения для обратной задачи :)

AdanosМеня интересует не как получить доступ к активной книге, а как запустить макрос на выполнение не из Excel, а из своей прогиЭлементарно.
Код: plaintext
1.
2.
3.
set objExcel = CreateObject("Application.Excel")
' потом открываешь книгу, набиваешь ее данными и тд и тп
' а потом запускаешь макрос
objExcel.Run("Module1.Macro1", "Param1", "Param2")
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35005464
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я уже сказал, я пытался стимулировать мыслительный процесс, а не дать решение :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Запуск макроса на выполнение не из VB
    #35005657
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Код: plaintext
1.
2.
3.
set objExcel = CreateObject("Application.Excel")
' потом открываешь книгу, набиваешь ее данными и тд и тп
' а потом запускаешь макрос
objExcel.Run("Module1.Macro1", "Param1", "Param2")
именно!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск макроса на выполнение не из VB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]