Excel->Outlook->Приложение?

Программирование на Visual Basic for Applications
AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Excel->Outlook->Приложение?

Сообщение AlexG » 15.06.2004 (Вт) 15:35

Накрапал в Excele вот такое:

Код: Выделить всё
Range("A3").Select
ActiveCell.CurrentRegion.Select
Selection.Copy ' здесь в буфер забирается блок информации

' теперь создаем новое сообщение в Outlook

Dim objOutlook As Outlook.Application
Dim objMail As MailItem
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(olMailItem)
    With objMail
        .Recipients.Add "Васе дорогому:"

'.....а теперь надо в тело сообщения вставить из буфера обмена тот блок, скажем как  -  рисунок(метафайл)....КАК?

        .Attachments.Add.......??? или
        .Body..............??

        .Subject = "Отчет на " & Date & Time
        .Display
    End With

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 16.06.2004 (Ср) 14:15

частично решается проблема так:

Код: Выделить всё
Range("A3").Select
ActiveCell.CurrentRegion.Select
Selection.Copy
Range("A3").Select
Dim objOutlook As Outlook.Application
Dim objMail As MailItem
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(olMailItem)
    With objMail
        .Recipients.Add "такому то дяде"
        .Subject = "Отчет за:" & Time & "/" & Date & "/"
        .Display
         SendKeys "+{INSERT}"
    End With


Но проблема как вставить эквивалентно в меню: Правка / Специальная вставка / Рисунок(метафайл) - о с т а е т с я ........

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 21.06.2004 (Пн) 15:41

Код: Выделить всё
    Set myOLItem = oApp.CreateItem(olMailItem)
    With myOLItem

            .Recipients.Add email(i)

            If FileExists(Path + "\" + region(i) + file_mask) = True Then
                .Attachments.Add (Path + "\" + file_mask)
            Else:
       
        If ListBox3.ListCount <> 0 Then
            For j = 1 To ListBox3.ListCount
                .Attachments.Add ListBox3.List(j - 1)
            Next j
        End If
       
         .body = body
         .Send
    End With
Ничто так не ограничивает полёт мысли программиста, как компилятор

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 21.06.2004 (Пн) 16:03

Хммм.......

Не могу понять...а как это решает проблему вставки в тело сообщения объекта из буфера в виде рисунка?

И что такое region(i), file_mask, ListBox3??

у меня компилятор вообще этого не понимает.....

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 21.06.2004 (Пн) 20:36

а так тебе вабще вов внутрь, тогда это подумать надо...
ps это переменные из проги моей вырезать было неохота....
Ничто так не ограничивает полёт мысли программиста, как компилятор

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 22.06.2004 (Вт) 6:58

вариант..
поставь сообщение в формате html
а далее
Код: Выделить всё
Set myOLItem = Application.CreateItem(olMailItem)
    With myOLItem
        .Recipients.Add "xxx@xxx.xx"
        .HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Enter the message text here. </BODY></HTML>"
        .Send
    End With

ну а как вставить картинку в html я думаю надешь или догадаешься :wink:
Последний раз редактировалось corgi 02.08.2004 (Пн) 22:48, всего редактировалось 1 раз.
Ничто так не ограничивает полёт мысли программиста, как компилятор

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 22.06.2004 (Вт) 9:10

Оооо......спасибушки.....через HTMLBody решается.

Благодарствую.

BuilderSoft
Постоялец
Постоялец
 
Сообщения: 350
Зарегистрирован: 21.09.2002 (Сб) 10:13

Сообщение BuilderSoft » 27.06.2004 (Вс) 0:29

ok

corgi писал(а):вариант..
поставь сообщение в формате html
а далее
Код: Выделить всё
Set myOLItem = Application.CreateItem(olMailItem)
    With myOLItem
        .Recipients.Add "nikolai@pochta.ws"
        .HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Enter the message text here. </BODY></HTML>"
        .Send
    End With

ну а как вставить картинку в html я думаю надешь или догадаешься :wink:
Нет глупых,
Один узнал раньше других
אין א-אפשר

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 29.06.2004 (Вт) 9:28

Все ....добил...усе работает....

Код: Выделить всё
Private Sub cmdLimitsReport_Click()
    Range("A3").Select
    ActiveCell.CurrentRegion.Select
       
        With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
            "D:\ИспользованиеЛимитов.htm", "Limits", Selection.Address, _
            xlHtmlStatic, "FX_MM_AgroCom_5049", "")
            .Publish (True)
            .AutoRepublish = False
        End With
   
    Range("A3").Select
   
    Dim Text1 As String
    Text1 = OpenFile1("D:\FX_MM_Forms", "ИспользованиеЛимитов.htm")
   
    Dim objOutlook As Outlook.Application
    Dim objMail As MailItem
    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(olMailItem)
        With objMail
            .Recipients.Add "такому то дяде"
            .Subject = "Отчет по использованию лимитов на " & Format(Time, "h:m") _
     & " /" & Date & "/"
            .HTMLBody = Text1
            .Display
        End With
End Sub
Function OpenFile1(Path1 As String, fileName1 As String) As String
    Dim Pt1 As String
    Dim Stmp1 As String, Stmp As String
   
    'If Path1 = "" Then
    '    Pt1 = App.Path
    'Else
    '    Pt1 = Path1
    'End If
   
      Pt1 = Path1
    Pt1 = Pt1 + "\" + fileName1
   
    Open Pt1 For Input As #1
    While Not EOF(1)
    Line Input #1, Stmp
    Stmp1 = Stmp1 + Stmp
    Wend
    Close #1
    OpenFile1 = Stmp1
End Function


Вернуться в VBA

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

Сейчас этот форум просматривают: Google-бот и гости: 109

    TopList