email - que - un programa esta intentando enviar correo electronico automaticamente en su nombre outlook 2013
Excel VBA-El correo electrónico no se envía cuando la computadora está bloqueada (3)
Tengo problemas para enviar correos electrónicos de Outlook utilizando Excel VBA. Tengo el código para hacerlo, Sendupdate
, y funciona bien cuando ejecuto manualmente la macro. Mi segunda macro StartTimer
está destinada a ejecutar lo anterior a una hora determinada cuando no estoy en mi escritorio.
Sin embargo, cuando la computadora está bloqueada, el correo electrónico no se envía. Cuando vuelvo a mi escritorio, el correo electrónico cuelga allí como borrador y necesito hacer clic en el botón send
.
Aquí está mi código:
Sub SendUpdate()
Recipient = "[email protected]"
Subj = "update"
Dim msg As String
msg = "hello”
HLink = "mailto:" & Recipient & "?"
HLink = HLink & "subject=" & Subj & "&"
HLink = HLink & "body=" & msg
ActiveWorkbook.FollowHyperlink (HLink)
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys "%s"
End Sub
Sub StartTimer()
Application.OnTime TimeValue("18:00:00"), "SendUpdate"
End Sub
¿Hay alguna manera de codificar la macro para asegurarse de que el correo electrónico sea empujado?
Romperé este "Tutorial" en 3 pasos
1) Escribiendo su macro de Excel
2) Preparando su archivo vbscript
3) Establecer la tarea en el Programador de tareas de Windows
ESCRIBIR EL EXCEL MACRO
Abra un nuevo archivo en Excel y en el módulo, pegue este código
Option Explicit
Const strTo As String = "[email protected]"
Const strCC As String = "[email protected]" ''<~~ change "[email protected]" to "" if you do not want to CC
Const strBCC As String = "[email protected]" ''<~~ change "[email protected]" to "" if you do not want to BCC
Sub Sample()
Dim OutApp As Object, OutMail As Object
Dim strbody As String, strSubject As String
strSubject = "Hello World"
strbody = "This is the message for the body"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = strTo
.CC = strCC
.BCC = strBCC
.Subject = "This is the Subject line"
.Body = strbody
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Guarde el archivo de Excel como C:/Tester.Xlsm
si está utilizando Excel 2007 en adelante o C:/Tester.Xls
si está utilizando Excel 2003 y sale
PREPARANDO EL ARCHIVO VBSCRIPT
Abra el Bloc de notas y luego pegue este código. Cambie la extensión ".xls" según corresponda.
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:/Tester.xls", 0, True)
xlApp.Run "Sample"
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
Guarde el archivo como Tester.vbs
y ciérrelo
CONFIGURACIÓN DE LA TAREA EN WINDOWS TAREA PROGRAMA
¿Podría confirmar su sistema operativo Windows? - Siddharth Rout hace 36 minutos
Windows XP. Es mi computadora de trabajo (por lo que tiene los inicios de sesión habituales, etc.). - keynesiancross hace 18 minutos
Haga clic en el botón de inicio | Todos los programas | Accesorios | Herramientas del sistema | Programar tareas para obtener esta ventana
Haga doble clic en "Agregar tarea programada" para obtener esta ventana
Haga clic en Siguiente
Haga clic en "Examinar" y seleccione el archivo vbs que creamos anteriormente y haga clic en "abrir"
La siguiente ventana que obtienes es crucial, ya que es aquí donde debemos mencionar cuándo se debe ejecutar el script
Después de haber hecho lo necesario, haga clic en siguiente.
En esta ventana, ingrese sus detalles de inicio de sesión para que la secuencia de comandos pueda ejecutarse incluso cuando su pantalla esté bloqueada.
Haga clic en "Siguiente" cuando termine y luego haga clic en "Finalizar" en la siguiente ventana. Su planificador de tareas ahora se ve así
Y has terminado
Bloquee su PC e intente tomarse un descanso para tomar café;) Cuando regrese ( dependiendo de la hora que establezca en el programador de tareas y de cuánto tiempo haya transcurrido ), el correo electrónico se habría enviado.
HTH
SendKeys es probablemente el culpable. Todavía uso CDO para enviar correos electrónicos a través de Excel VBA. Esto debería comenzar: http://www.rondebruin.nl/cdo.htm
Usé HTML e JavaScript setInterval para ejecutar código vba para superar ese problema. Código:
<html>
<script>
var flag = false;
var xlApp;
var xlBook;
var i = 0;
function processExcel()
{
//Open the excel containing macro for the first time
if(flag==false)
{
xlApp = new ActiveXObject ( "Excel.Application" );
//Your Excel containing VBA code
xlBook=xlApp.Workbooks.Open("Count1.2.xlsm")
}
// "a" is the VBA macro
xlApp.Run("a");
flag=true;
i++;
window.status="Last Updated " + new Date();
}
var w
function run()
{
processExcel();
w= setInterval("processExcel()",120000);
}
function stop()
{
clearInterval(w);
}
</script>
<body >
<input type="button" value="Start" onclick="run()" />
<input type="button" value="Stop" onclick="stop()"/>
</body>
</html>