Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск макроса на выполнение не из VB / 11 сообщений из 11, страница 1 из 1
12.12.2007, 14:14:51
    #35004363
Adanos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
ActiveX обьект я создаю в С++, сформировал файл с текстом макроса, как сделать так чтобы этот макрос выполнился ,например, для активной книги??помогите,плз.
...
Рейтинг: 0 / 0
12.12.2007, 14:27:18
    #35004406
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
ActiveWorkbook, ну и про thisworkbook почитайте.
...
Рейтинг: 0 / 0
12.12.2007, 14:45:01
    #35004504
Adanos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
Меня интересует не как получить доступ к активной книге, а как запустить макрос на выполнение не из Excel, а из своей проги
...
Рейтинг: 0 / 0
12.12.2007, 15:34:19
    #35004741
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
Достучаться к нему вы можете только через объект Excel, создав его. Но сделав это, вы уже автоматизируете Excel, и можете продолжать им манипулировать из своей программы, написанной на С++, вместо того, чтоб пытаться выполнить эти действия через внедрение кода. На пути последнего вам встретятся, как минимум, антивирусные программы и требование доверительного уровня доступа к VBA проектам Excel
...
Рейтинг: 0 / 0
12.12.2007, 15:46:43
    #35004805
Adanos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
У нас большой проект, и работа с ActiveX идёт через уже написанные функции , которые некто менять не будет, они почему-то работают медленней чем в VB (скорость очень важна), вот думаю как обойти эту проблему.
...
Рейтинг: 0 / 0
12.12.2007, 16:22:09
    #35004989
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
Делайте код на VBA в отдельной книге (надстройке и т.д.). При работе открывайте её, передавайте название той книги какую обработать и запускайте программу извне. Excel и будет по поручению работать как надо.
...
Рейтинг: 0 / 0
12.12.2007, 16:24:46
    #35005000
Adanos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
Можно кусочек кода??
...
Рейтинг: 0 / 0
12.12.2007, 16:45:11
    #35005108
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
Может это даст какие-нибудь идеи:

Код: 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
12.12.2007, 17:51:54
    #35005416
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса на выполнение не из VB
KL (XL)Может это даст какие-нибудь идеи:Мне почему-то кажется, что ты дал решения для обратной задачи :)

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

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


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