< návrat zpět

MS Excel


Téma: Spuštění Outlooku z Excelu rss

Zaslal/a 19.8.2013 13:32

LanoZdravím,
mám jednu drobnost a nějak nemám štěstí s Googlováním 7 .
Dotaz: Jde pomocí VBA v Excelu spustit aplikaci Outlook?
Mám udělané makro, které posílá zprávy pomocí Outlooku. Zpráva se vytvoří, ale pokud není spuštěn Outlook, neodešle se a zůstane v poště pro odeslání. Teprve po spuštění Outlooku se odešle.
Stává se mi, že i když se uživateli otevírá Outlook pomocí Po spuštění, tak ten ho občas uzavře a teprve pak spustí makro v Excelu. 6 A zpráva se odešle až druhý den a tudíž pozdě.
Pokud má někdo radu řešit to pomocí násilí, tak to si nechávám až jako poslední možnost 2
Příloha je, myslím, zbytečná 1 Nebo by byla dobrá? 1
Díky předem

stop Uzamčeno - nelze přidávat nové příspěvky.

#014778
Opičák
a nestačí pouze ???

Sub openOutlook()
Shell ("OUTLOOK")
End Subcitovat
#014779
Jeza.m
Myslím že by nebyla od věci, ono totiž záleží na způsobu který využíváš k odeslání.

U mě např:
Public Sub EMAIL2()
On Error Resume Next
Dim fso As New FileSystemObject
Dim fil As File
Dim ts As TextStream
Dim text As String

EML_RECEIVER = "jeza.m@centrum.cz"

EML_SUBJECT = "POKUS"

Set fil = fso.GetFile(ThisWorkbook.Path & "\HTML\OUT2.htm") 'Cesta k souboru
Set ts = fil.OpenAsTextStream(ForReading)
text = ts.ReadAll
ts.Close

Dim oOApp As Outlook.Application
Dim oOMail As Outlook.MailItem

Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)

With oOMail
.To = EML_RECEIVER
'.CC = EML_COPY
.Subject = EML_SUBJECT
.HTMLBody = text
'.Attachments.Add ThisWorkbook.Path & "\Last.pps"
.Send
End With

End Sub

Funguje i bez spuštěné aplikace, nutností je ale přidat referenci na outlook knihovnu "Microsoft Outloo 11.0 Object Library" u Office 2003. U novějších myslím, že je to verze 14.0, ale na verzi až tak nezáleží. S čím může nastat problém je pokud někdo spustí excelovou aplikaci v novějším Office, tak se knihovna automaticky přepíše na novější, což pokud uživatel uloží, tak tím zkomlikuje život vlastníkům Office 2003, protože těm se zpět nepřepíše a je nutno znova přidat referenci.
Ten příklad tam má část kterou je možno ignorovat a to načítání externího html souboru jako html textu zprávy, ale jde použít i prostý text.

M@citovat
#014780
Lano
To Jeza.m:
diky, ale soubor je používán více verzemi Excelu a jsou tam prováděny změny. Takže nic.
To Opičák:
jo, to je přesně ono. Funguje spolehlivě.
Díky oběma za pomoc
PS: Jen ještě doplnění, jde zjistit, jestli už není Outlook otevřený? Ať není otevřený 2x...
Díkycitovat
#014783
Stalker

Lano napsal/a:


PS: Jen ještě doplnění, jde zjistit, jestli už není Outlook otevřený? Ať není otevřený 2x...
Díky


Třeba se najde něco k užitku zde:
http://www.mrexcel.com/forum/excel-questions/353091-check-if-outlook-running-visual-basic-applications.htmlcitovat
#014784
Opičák
Vyzkoušej toto.
U mě funguje bez chyby. tedy nespustí Outlook podruhé.
Sub CheckIfOutlookIsRunning()
On Error GoTo OutlookIsNotRunning
AppActivate ("Outlook")
Exit Sub
OutlookIsNotRunning:
Call Open_OutLook
End
End Sub
Sub Open_OutLook()
Dim oOutlook As Object
Dim oNameSpace As Object
Dim oInbox As Object
Set oOutlook = CreateObject("Outlook.Application")
Set oNameSpace = oOutlook.GetNamespace("MAPI")
Set oInbox = oNameSpace.Folders(1)
oInbox.Display
End Sub
citovat
#014785
Lano
Je to perfektní. Díky všem za pomoc.
Problém vyřešen.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje