Lotus жазбаларында Excel VBA арқылы дерекқорды көрсетпестен «жауап беру» мекенжайын қалай көрсетуге болады?

Lotus Notes 7 арқылы электрондық поштаны жіберу коды бар. Ол жақсы жұмыс істейді. Мен көргенімнен осы екі әдіс бар және олардың біреуі дерекқорды көрсетуді талап етеді. Мен талап етпейтін әдісті пайдаланамын, себебі бірнеше адам осы кодты пайдаланатын болады және олардың көпшілігі VB-ны өзгерту немесе оқу туралы білмейді.

Электрондық поштаға жауап беру бөлігін жасағым келеді. Мен ойланатын әртүрлі нұсқаларды көрдім және ештеңе жұмыс істемейді (әртүрлі жолдардағы әртүрлі қателіктер).

Алдын-ала рақмет,

Аарон.

Sub Email_Atrack_Report(SubjectLine As String, _ 
    AgentOracle As String, TMAddress As String)

    Dim NSession As Object
    Dim NUIWorkSpace As Object
    Dim NDoc As Object
    Dim NUIdoc As Object


    Set NSession = CreateObject("Notes.NotesSession")
    Set NUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")

    Set NDoc = NUIWorkSpace.ComposeDocument("", "", "Memo")
    Set NUIdoc = NUIWorkSpace.CURRENTDOCUMENT

    With NUIdoc
        .FieldSetText "EnterSendTo", AgentOracle & "@Company.com"
        .FieldSetText "EnterCopyTo", TMAddress

        .FieldSetText "Subject", SubjectLine
        .FieldSetText "Body", "**PASTE Atrack HERE**"


        .GotoField ("Body")
        .FINDSTRING "**PASTE Atrack HERE**"
        Sheets("EmailOutput").Range("MessageBody").Copy
        .Paste
        .send
        .Close
    End With

    Set NUIdoc = Nothing
    Set NDoc = Nothing
    Set NUIWorkSpace = Nothing
    Set NSession = Nothing

End Sub
0

3 жауаптар

Сіз көрсететін мекенжайды көрсету үшін Principal өрісін пайдалануға болады. «Кімнен» мекен-жайы ретінде. Мұны NotesUIDocument , бірақ пошта дерекқорын NotesDatabase.OpenMail әдісі.

Set session = CreateObject("Notes.NotesSession")
Set maildb = session.getDatabase("", "")

Call maildb.OpenMail
If Not maildb.IsOpen Then Call maildb.Open("", "")

Set maildoc = maildb.createdocument

Set body = maildoc.createrichtextitem("body")
Call body.AppendText( Sheets("EmailOutput").Range("MessageBody").Text )

Call maildoc.replaceitemvalue("form", "memo")
Call maildoc.replaceitemvalue("subject", subject)
Call maildoc.replaceitemvalue("principal", "reply-to-this-user")
Call maildoc.send(false,recipient)
1
қосылды
Бұл жұмыс істеген сияқты, БІРАҚ ... Осы әдісті қолданып, Excel ұяшығынан көшірме/пастаманы хабарымның денесіне қалай алуға болады? Мен келесі жолды қолдандым: MailDoc.replaceitemvalue («body», Sheets (EmailOutput)) қоңырау шалу (Range («MessageBody»), Көшіру) , бірақ ол әлі бос қалды.
қосылды автор Farfromunique, көзі
Мен мұны өз бетіммен іздеймін, бірақ бірден білетін кездейсоқтықта, мен: « сөзбе-сөз көшіруге/қоюға қажет Мен қалаймын (пішімдеу, жасырылған жолдар және т.б.). Мұны істеу үшін кодты қалай өзгертуге болады, немесе мүмкін емес пе?
қосылды автор Farfromunique, көзі
Бұл әрекетті байқап көріңіз ... Алдымен жоғарыда көрсетілген NotesDocument-ты жасаңыз, бірақ жіберу әдісін шақырмаңыз. SendTo элементін алушылар тізіміне орнатыңыз. Содан кейін maildoc.save() деп теріңіз. Ол жоба ретінде сақталады. Содан кейін NotesUIWorkspace.EditDocument параметрін пайдаланып, maildoc-та EditDocument әдісіне екінші аргумент ретінде жіберіңіз. Электрондық кесте деректеріңізде корпусқа өту және қою үшін түпнұсқадан кодты пайдаланыңыз.
қосылды автор Richard Schwartz, көзі
@Farfromunique: Мен жауапты richtextitem.AppendText (мәтін $) үлгісімен жаңарттық.
қосылды автор Anders Lindahl, көзі
Мен UI арқылы өтпестен аралық алмасу деректерін richtextitem ішіне кірістірудің қарапайым әдісін білмеймін деп қорқамын. Бас кода .document.replaceitemvalue («негізгі», «жауап-пайдаланушы») кодын қоюға тырысуға болады және орнына осы тәсілді қолдануға болады, бірақ мен артқы - құжатты Notes-ке тапсырады.
қосылды автор Anders Lindahl, көзі

Мұны шешудің екі жолы бар: құжатты құру және жіберу әдісін пайдалану немесе құжатты пошта жәшігіне көшіру.

A good way to start is to read this blog entry by Jake Howlett

Электрондық поштаға қолдануға болатын элементтер:

Principal
iNetFrom
DisplaySent
ErrorsTo
ReplyTo
CopyTo
BlindCopyTo
SendTo
1
қосылды

Тек құжатта «Жауап беру» элементін орнату қажет, ол келесідей:

.FieldSetText "ReplyTo", "[email protected]"
0
қосылды
Мен мұны істеген кезде, мен: «runtime қатесі '7412': Ескерту қатесі - өрісті табу мүмкін емес»
қосылды автор Farfromunique, көзі
Жоқ, ол көрінбейді. Бұл әрекетті орындау үшін NotesDocument сыныбының әдістерін пайдалану қажет болады.
қосылды автор Richard Schwartz, көзі
Жауап беру өрісі көрініп тұр ма? NotesUIDocument.FieldSetText пайдаланушы интерфейсінде көрінбейтін жерлерге қатынаса алатынына сенімді емеспін, бірақ қате болуы мүмкін ...
қосылды автор Anders Lindahl, көзі