Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

В этом выпуске опубликованы следующие советы:


Word Expert - профессиональная работа с текстом

Выпуск рассылки №121 от 2008-10-30 22:15

В этом выпуске:

  1. Советы и подсказки
  2. Полезные ссылки
  3. Информация об авторских правах

Советы и подсказки

Если у вас есть идея или совет по эффективному использованию редактора Word, то пишите мне через форму контактов на сайте. Любые ваши дельные советы и подсказки будут размещены в очередных выпусках рассылки и на сайте (с указанием вашего авторства).

Как выделить текст от начала документа до искомого фрагмента текста

Анатолий спрашивает:
Как программно выделить часть текста от начала документа до найденного фрагмента? Он может быть где угодно.

Вот образец рабочего макроса. При запуске макроса происходит поиск в документе определенного текста (в коде это строка "Искомый текст") и выделяет весь текст от найденного фрагмента до начала документа. Сам искомый фрагмент в выделение не входит.
Sub strSelect()
'Выделение текста от найденного фрагмента до начала документа
'ищет первое вхождение искомой строки
Dim switchFound As Boolean ' найдено или не найдено
Selection.Find.Execute _
   findText:="Искомый текст", _
   Forward:=True, _
   Wrap:=wdFindContinue
switchFound = Selection.Find.Found
If switchFound = False Then
   MsgBox "Не найдено"
Else
   Selection.Collapse wdCollapseStart
   Selection.StartOf Unit:=wdStory, Extend:=wdExtend
End If
End Sub
Оставить комментарий | Задать вопрос

Можно ли перевернуть текст вверх тормашками?

Оксана задала вопрос:
Как перевернуть текст на страничке Word?

Перевернуть текст вверх-тормашками можно в документе Word, если воспользоваться объектом WordArt. В противном случае - никак.
Оставить комментарий | Задать вопрос

Как отправить письмо из Word при помощи VBA

Перевод статьи How to send an email from Word using VBA выполнен специально для блога компанией Бюро переводов AGI Triple. Статья предоставлена Астрид Зиленберг
1. Использование метода Routing Slip
Самый простой способ отправки документа по электронной почте - это использование встроенного в Word метода RoutingSlip.
Используя его, можно отправлять сообщение как одному, так и нескольким адресатам, задавать заголовок и определять отправлять ли сообщение всем адресатам одновременно или пересылать сообщение по цепочке от одного к другому.

Преимущества использования метода RoutingSlip:
  • Код будет работать со всеми почтовыми программами, нет необходимости заранее выяснять что именно установлено в системе.
  • Даже не сохраненный документ может быть отправлен.
  • Код будет работать быстрее, чем при автоматизации Outlook (конечно, если при запуске Вашего кода Outlook не запущен).
Недостатки использования RoutingSlip:
  • В теле письма содержится текст по умолчанию, который не возможно изменить из кода.
  • Текст самого документа не представляется возможным использовать как текст сообщения. Вы можете только приложить документ к письму.
  • Вы не можете установить адреса для поля bcc (скрытой копии).
Вот пример кода для использования RoutingSlip:
Activedocument.HasRoutingSlip = True
With Activedocument.RoutingSlip
    .Subject = "Новый заголовок"
    .AddRecipient "Firstaddress@Mail.com"
    .AddRecipient "Secondaddress@Mail.com"
    .Delivery = wdAllAtOnce
End With
Activedocument.Route
2. Автоматизация Outlook
Другая опция - это автоматизация Outlook для отсылки документа. Серьезным недостатком этой опции - является то, что Вы должны быть абсолютно уверены в том, что в системе запускающей код установлен Outlook.

Другим недостатком является то, что при отсылке документа в приложении к письму, документ должен быть хотя бы один раз сохранен. Это связанно с тем, что Вам необходим путь к документу и имя файла для кода.

Если при запуске кода Outlook не загружен, это способ будет медленнее.

И наконец, код несколько сложнее, чем при использовании метода Route. Установите ссылку на библиотеку Outlook (Tools-References в Visual Basic Editor) для правильной работы следующего кода:
Sub SendDocumentInMail()

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

'Получить объект Outlook, если он загружен
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook не загружен, запускаем его из кода
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

Создаем новый объект mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    'Устанавливаем адрес для нового письма
   .To = "recipient@mail.com"
    'Устанавливаем адрес для копии письма 
    .CC = "recipient2@mail.com"
    'Устанавливаем заголовок
    .Subject = "Новый заголовок"
    'Текст документа используем как тело письма.
    .Body = ActiveDocument.Content
    .Send
End With

If bStarted Then
    'Если запустили Outlook из кода, то закрываем его 
    oOutlookApp.Quit
End If

'Все очищаем
Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
Этот код отправляет текст документа как содержимое письма ( то есть не прилагает его) и отправляет его чистым текстом, так что все его форматирование пропадет.
Вы можете отправить документ в приложении к письму, предусматривая, что документ был сохранен хотя бы один раз:
Sub SendDocumentAsAttachment()

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

If Len(ActiveDocument.Path) = 0 Then
    MsgBox "Документ должен быть вначале сохранен"
    Exit Sub
End If

Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    .To = "recipient@mail.com"
    .Subject = "Новый заголовок"
    'Добавляя документ как приложение к письму, Вы можете использовать 
    'свойство .displayname для  установки описания используемого в сообщении 
    .Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue, _
      DisplayName:="Документ в приложении"
    .Send
End With

If bStarted Then
    oOutlookApp.Quit
End If

Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
Оставить комментарий | Задать вопрос

Шаблон для работы с закладками

В начале этого года я опубликовал заметку Список закладок в документе. В ней по просьбе читателя я разместил код макроса, который создает в документе список (в виде гиперссылок) имеющихся в документе закладок.

Сегодня я хочу предложить вашему вниманию другое (более элегантное) решение - в виде панели инструментов со списком закладок в текущем документе и часто вызываемых команд для управления закладками. Вот как это выглядит (рисунки).

Выбор любой закладки из списка позволит вам быстро переместиться к ней в тексте документа. Полагаю, что такое решение будет полезно для многих пользователей редактора, которые часто работают с закладками.
Подробное описание шаблона, порядок его установки и методов работы с ним, изложено в прилагающейся к шаблону Инструкции.
Я подготовил две версии шаблона: в первой версии шаблона список закладок располагается под командами (см. картинки выше); во второй версии список закладок располагается в верхней части меню, вызываемого по щелчку на кнопке панели инструментов (рисунок).

Скачать версии шаблона вы можете на странице Полезности Word.

Хочу заметить, что при разработке шаблона мне большую помощь в выяснении некоторых трудных вопросов программирования оказали коллеги с сайтов RusFAQ.ru и Форум на Исходниках.Ру. Огромное им спасибо!
Оставить комментарий | Задать вопрос

Полезные ссылки

Информация об авторских правах

Вся информация, представленная на сайте WordExpert.ru и в этой рассылке, никаким образом не связана с корпорацией Microsoft. В рассылке упоминаются компании и продукты, которые могут быть зарегистрированными торговыми марками и принадлежать различным физическим и юридическим лицам как на территории РФ, так и за ее пределами.

Авторские права на все материалы, опубликованные на сайте WordExpert.ru и в этой рассылке (включая текст, фотографии, подборку, расположение и т.п.) принадлежат Кокину Антону Вадимовичу, если не указано иное. Вы можете свободно использовать и распространять эти материалы с обязательной ссылкой вида "Информация с сайта WordExpert.ru" и с обязательным указанием автора материала.

Все материалы, опубликованные на сайте WordExpert.ru и в этой рассылке, представлены на информационной основе. Вы можете использовать любую информацию с сайта WordExpert.ru или из данной рассылки исключительно на свой страх и риск. Тем не менее, я рекомендую перед применением какой-либо информации с сайта WordExpert.ru или из данной рассылки обязательно сохранять и создавать резервные копии ваших документов.

В этой рассылке также упоминаются различные web-страницы с соответствующими ссылками. Эти ссылки указываются исключительно в информационных целях и никакой рекомендации или одобрения с моей стороны данных веб-страниц не подразумевается, если не указано иное.


В избранное