Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2012, 15:05   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Скопировать таблицу в буфер

Здравствуйте. Напишите пожалуйста макрос, который скопирует таблицу из документа Word в буфер обмена для вставки её в электронное письмо.
Типа
Код:
Sub Копировать()
ActiveDocument.Tables(1).Range.Copy
End Sub
Вложения
Тип файла: rar Таблица водоканала.rar (7.6 Кб, 12 просмотров)

Последний раз редактировалось agregator; 20.10.2012 в 19:46.
agregator вне форума Ответить с цитированием
Старый 21.10.2012, 02:21   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Так а в чём дело? Твой код и так её копирует. Вставляется неправильно? У меня в gmail вставилось как нужно. Здесь дело не в том, как копировать, а как вставлять. При вставке в письмо программа должна сама разобраться с форматом данных в буфере обмена и соотвественно вставить его
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.10.2012, 05:36   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Точно работает. Просто был установлен высокий уровень безопасности. Вот VB и ругался (The macros in this project are disabled. Please refer to the online help or documentation of the host application to determine how to enable macros.)

Последний раз редактировалось agregator; 21.10.2012 в 05:38.
agregator вне форума Ответить с цитированием
Старый 21.10.2012, 15:35   #4
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Нашёл здесь как отправить сообщение

Код:
Function Send_Mail(ByVal MailTo As String, ByVal MailFrom As String, _
                    ByVal MailSubject As String, ByVal MailText As String, _
                    Optional ByVal MailAttachment As String = "") As Boolean
     ' функция для отправки почты без использования внешних почтовых программ
    ' ----------------------------------------------------------------------
    ' в качестве параметров получает:
    ' MailTo - адрес получателя письма
    ' MailFrom - адрес отправителя письма
    ' MailSubject - тема письма
    ' MailText - текст письма
    ' MailAttachment - полный путь к файлу вложения (необязательный параметр)
    ' ----------------------------------------------------------------------
    ' возвращает TRUE, если отправка почты произошла успешно, и FALSE в обратном случае

     Const cdoConfigURL = "http://schemas.microsoft.com/cdo/configuration/"
     On Error Resume Next: Err.Clear

     smtpserver = GetSetting(Application.Name, "mail", "smtpserver", "")
     sendusername = GetSetting(Application.Name, "mail", "sendusername", "")
     sendpassword = GetSetting(Application.Name, "mail", "sendpassword", "")
     If Len(smtpserver) = 0 Or Len(sendusername) = 0 Or Len(sendpassword) = 0 Then Exit Function

     Set cdoConfig = CreateObject("CDO.Configuration")
     With cdoConfig.Fields
         .Item(cdoConfigURL & "sendusing") = 2
         .Item(cdoConfigURL & "smtpauthenticate") = 1
         .Item(cdoConfigURL & "smtpserver") = smtpserver
         .Item(cdoConfigURL & "sendusername") = sendusername
         .Item(cdoConfigURL & "sendpassword") = sendpassword
         .Update
     End With

     Set cdoMessage = CreateObject("CDO.Message")
     With cdoMessage
         Set .Configuration = cdoConfig
         .BodyPart.Charset = "koi8-r"
         .From = MailFrom:
         .To = MailTo
         .Subject = MailSubject
         .TextBody = MailText
         If Len(MailAttachment) > 0 Then .AddAttachment MailAttachment
         .Send
     End With
     Set cdoMessage = Nothing: Set cdoConfig = Nothing

     '    If Err.Number = -2147220973 Then MsgBox ("Отсутствует связь с интернетом")
    '    If Err.Number = -2147220975 Then MsgBox ("SMTP сервер ответил отказом")
    '    If Err.Number = 0 Then MsgBox ("Письмо отправлено")
    Send_Mail = Err = 0
End Function

Sub SaveAccountData()    ' запускать один раз - для записи в реестр Windows параметров почтового аккаунта
    SaveSetting Application.Name, "mail", "smtpserver", "smtp.mail.ru"    ' Ваш SMTPServer
    SaveSetting Application.Name, "mail", "sendusername", "vasya_pupkin@mail.ru"    ' Ваша учетная запись
    SaveSetting Application.Name, "mail", "sendpassword", "pup123456"    ' Ваш  пароль
End Sub

Sub Отправка()    ' Пример использования функции Send_Mail
   x = ActiveDocument.Tables(1).Range
    txt = x
     If Send_Mail("ivan_ivanov@mail.ru", "vasya_pupkin@mail.ru", "проверка отправки почты", txt) Then
         MsgBox "Письмо успешно отправлено", vbInformation
     Else
         MsgBox "Не удалось отправить письмо", vbExclamation
     End If
End Sub


Подскажите пожалуйста, как вставить в txt скопированную в буфер таблицу, чтобы сохранился формат таблицы

Последний раз редактировалось agregator; 21.10.2012 в 16:30.
agregator вне форума Ответить с цитированием
Старый 21.10.2012, 16:42   #5
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Если отправить, нажав на кнопку ОТПРАВКА, Используя службу веб-почты mail.ru и вставить Ctrl+v, то таблица вставляется как надо.
Можно ли это автоматизировать?
Вложения
Тип файла: rar Таблица водоканала.rar (13.2 Кб, 12 просмотров)

Последний раз редактировалось agregator; 21.10.2012 в 16:50.
agregator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать файл в буфер обмена cw_o Microsoft Office Word 2 31.08.2012 14:17
скопировать файл в буфер обмена Rolls Общие вопросы Delphi 15 17.02.2012 01:03
Из Wordа запустить Exel, скопировать таблицу kain151 Microsoft Office Word 4 25.03.2010 00:42
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02
Скопировать в буфер обмена Dj_smart JavaScript, Ajax 8 15.05.2008 19:16