Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

crear un *.vbs

0 views
Skip to first unread message

ST

unread,
Jan 31, 2007, 1:02:00 PM1/31/07
to
se puede crear un *.vbs desde excel ?....y como seria el codigo para
lograrlo???

salu2

KL

unread,
Jan 31, 2007, 1:48:13 PM1/31/07
to
Hola ST,

No se si te refieres a algo asi:

'------------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-----------

En todo caso, recordarte que VBS no es el mismo lenguaje que VB ni VBA :-)

Saludos,
KL

"ST" <alcast...@yahoo.com> wrote in message
news:1170266520....@p10g2000cwp.googlegroups.com...

ST

unread,
Feb 6, 2007, 4:54:44 PM2/6/07
to
Hola KL:

1º que nada 1,000,000 gracias por tu excesiva prontitud en la
respuesta =) y 1000 disculpas por mi lentitud al responder a tu
gentileza.

2º ya resuelto el 1º planteamiento,como se ejecutaria desde excel el
*.vbs ?
probe esto; pero genera error [llamada a un procedimiento no valida]

Sub abrir()
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.OpenTextFile(ThisWorkbook.Path & "\Prueba.vbs", ForReading)
a.Close
End Sub


KL

unread,
Feb 6, 2007, 5:35:17 PM2/6/07
to
Hola ST,

Prueba asi:

Sub test()
Shell "cscript " & ThisWorkbook.Path & "\Prueba.vbs"
End Sub

Saludos,
KL


"ST" <alcast...@yahoo.com> wrote in message

news:1170798884.5...@m58g2000cwm.googlegroups.com...

ST

unread,
Feb 7, 2007, 3:05:37 PM2/7/07
to
KL:

el archivo no se ejecuta,probe agregando la extension ".exe",pero
tampoco.... ???,....sera el nombre de la aplicaciòn ???

temporalmente lo solucione asi:

Sub Ejecutarvbs()
ActiveWorkbook.FollowHyperlink ThisWorkbook.Path & "\Prueba.vbs"
End Sub

el problema es que me manda el consabido aviso
de......................
"Algunos archivos ,pueden contener virus o dañar el sistema,es
importante saber si el archivo procede de una fuente de
confianza,¿Desea abrir el archivo?"

Asi que mejor esperare tu comentario ;-D


0 new messages