Запустить макрос из текстового документа

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Запустить макрос из текстового документа

Сообщение Calvin » 01.09.2004 (Ср) 17:11

Здраствуйте, уважаемые!
Подскажите, можно ли запустить макрос, тело которого находится в *.txt файле?
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.09.2004 (Ср) 17:25

Путь первый... Написать полный интерпретатор VB и скормить ему файл...

Путь второй... Программно создать модуль, засадить туда содежимое текстового файла и заюзать команду application.run... Для чего нужно подключить vba extensibility.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 01.09.2004 (Ср) 18:46

А можно поподробнее, а то я торможу нынче......... :roll:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 01.09.2004 (Ср) 18:51

Посмотри в предыдущей теме, так кое что есть...А остальное и сам добавишь.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 02.09.2004 (Чт) 9:36

2 san*
ничего подходящего я вообще в предыдущих темах не вижу.......если ты что-то и узрел, кинь ссылку
2 GSerg
"....Написать полный интерпретатор VB и скормить ему файл.." это как?
"...Для чего нужно подключить vba extensibility..." а это для чего?
ну на счет того, что создать програмно модуль - это я понял ;)
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 02.09.2004 (Чт) 16:17

Держи
Вложения
run_script_of_file.rar
(6.22 Кб) Скачиваний: 132

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 03.09.2004 (Пт) 12:27

2 san* спасибо....
но, в строке comp.CodeModule.InsertLines 1, b
при выполнении выдает ошибку "Can't enter break mode at this time" :?:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 03.09.2004 (Пт) 12:36

А ты ничего не менял в моей программе или в текстовм файле? А какой у тебя офис?

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 03.09.2004 (Пт) 15:17

я извиняюсь :oops: ....просто я запускал макрос в пошаговом режиме и возникала это непонятка (я честно говоря не понял, что это значит)
Спасибо, все работает!!!
ЗЫ 2 GSerg и всеже про интерпритатор ВБ я так и не понял.... :roll:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2004 (Пт) 17:24

Это путь для постигших Дзен...
Ты можешь с нуля создать язык программирования? Тогда смело используй этот путь :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 04.09.2004 (Сб) 11:43

Путь первый... Написать полный интерпретатор VB и скормить ему файл...

Зачем, если есть интерпретирующий текстовую строку VB объект!

Помимо, уже рассмотренного выше объекта, возможно переименовать текстовый файл, и дать ему расширение bas, а затем импортировать его программно в проект, а там уже выполнять.

MisterX
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 03.08.2004 (Вт) 12:49
Откуда: Moscow

Сообщение MisterX » 06.09.2004 (Пн) 15:25

Отлично!
Вопрос следующего характера
как быть с файлами *.vbs
Можно их запустить в Excel ?
Он воспомет объект Wscript ?
или как запустить exeШник
или как пописать и почитать РЕЕСТР
из Excell
ЕСТЬ ВОЗМОЖНОСТЬ ?
ШАМАНЫ! ОТВЕТТЕ ПЛИЗ !!

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 06.09.2004 (Пн) 15:38

Exe файл запускается оператором Shell, например :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.09.2004 (Пн) 15:50

Shell не оператор, а функция.
"Говорите грамотно!" (с)
Изображение

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 06.09.2004 (Пн) 16:18

Хорошо, инструкция!

MisterX
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 03.08.2004 (Вт) 12:49
Откуда: Moscow

Сообщение MisterX » 08.09.2004 (Ср) 14:11

Vitaly1 писал(а):Хорошо, инструкция!

а СИНТАКСИС ?

Митяй
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 10.03.2006 (Пт) 13:33

Сообщение Митяй » 27.08.2007 (Пн) 16:37

Попробовал вставлять модуль из текстового файла при помощи run_script_of_file. И столкнулся с такими непонятками: запятые читаются как конец строки. То есть текст такого вида

ost = DateSerial(god, mes, den)

вставляется как

ost = DateSerial(god
mes
den)

С остальными знаками препинания все нормально.
Кто-нибудь может подсказать, в чем дело?

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 27.08.2007 (Пн) 19:15

Еще был такой вариант (давно когда-то писал ради смеха). Извиняюсь, но комментарии переводить некогда.

Код: Выделить всё
'------------En un modulo estandar-----------
'Ejemplo de codigo que crea un archivo Prueba.vbs en la misma
'ruta que el archivo *.xls que lo crea. El archivo resultante
'al ser ejecutado abrira este *.xls y lanzara el procedimiento
'"MiMacro" situado en un modulo estandar del mismo.

Sub CrearArchivoVBS()
    Dim strTxt As String
    Dim strNombreArchivo As String
    Dim objFS As Object, objArchivo As Object

    'Establecemos la ruta y el nombre del futuro archivo *.vbs
    strNombreArchivo = ThisWorkbook.Path & "\" & "Prueba.vbs"

    'Creamos el cuerpo del codigo VBS
    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(""MiMacro"")" & Chr(13)
    strTxt = _
        strTxt & "Set myBook=nothing" & Chr(13)
    strTxt = _
        strTxt & "myApp.Quit" & Chr(13)
    strTxt = _
        strTxt & "Set myApp = Nothing"

    'Creamos el archivo *.vbs y lo llenamos con el codigo
    Set objFS = CreateObject("Scripting.FileSystemObject")
    Set objArchivo = objFS.CreateTextFile(strNombreArchivo, True)
    objArchivo.WriteLine (strTxt)
    objArchivo.Close
End Sub

'El procedimiento que luego se invocara desde el *.vbs
Sub MiMacro()
    MsgBox "Hola Mundo!"
End Sub
'------------Fin codigo-----------

Sub test()
    CrearArchivoVBS
    Shell "cscript //nologo " & ThisWorkbook.Path & "\Prueba.vbs"
End Sub
Привет,
KL

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.08.2007 (Ср) 11:35

MisterX писал(а):а СИНТАКСИС ?


А F1?

Ну нафига спрашивать то что есть в Help-e, притом с примерами?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 115

    TopList  
cron