Страницы: 1
RSS
Макрос Outlook 2010, Вставлять макросом слова приветствия или ФИО
 
Здравствуйте! Вопрос не по Excel, а по Outlook 2010. Очень часто приходится писать письма и надо поприветствовать типа: Доброе утро! Добрый день! Здравствуйте! Добрый вечер! или обращаться постоянно по имени отчеству. Нужен макрос VBA Outlook 2010, что бы сочетанием клавиш вставлять приветствие, знаю, что такое возможно, но я сам в макросах не разбираюсь. Напишите пожалуйста макрос вставить: Доброе утро! далее с другими словосочетаниями думаю разберусь.
 
Доброе время суток.
Цитата
Аслан написал:
что бы сочетанием клавиш
Увы, судя по репликам в инете Outlook не поддерживает "горячие" клавиши.
 
Можно на панель быстрого доступа (ПБД) добавить кнопку для вызова макроса Outlook.
А в макросе написать строку кода для открытия формы с элементом Listbox, в котором будет список приветствий. Двойной клик вставит выбранное приветствие в начало письма. То есть, при редактировании письма или ответа на письмо можно будет нажать на добавленную кнопку ПБД и в появившемся списке выбрать вариант приветствия со вставкой его в начало письма.
Изменено: ZVI - 04.08.2018 19:43:34
 
Полная инструкция по реализации метода, предложенного в моем предыдущем сообщении:

1. Создать макросы в Outlook
1.1. В Outlook нажать ALT-F11 для перехода в редактор VBE.
1.2. Нажать CTRL-R для перехода в окно Project Explorer и найти там элемент Microsoft Outlook Objects , а в нем  дважды кликнуть на  ThisOutlookSession, и в активном окне (справа) вписать код:
Код
Private Sub Application_Startup()
  'Nothing
End Sub

Этот код заставит Outlook при первом открытии включать макросы (запрашивать о включении макросов).
1.3. Добавить модуль для кода макроса:  VBE – Insert - Module
1.4. В активном окне добавленного модуля Module1 записать код:
Код
Public Const MyList = "Доброе утро!;Добрый день!;Добрый вечер!;Здравствуйте!"
Sub Welcome()
  UserForm1.Show
End Sub

1.5. Добавить в проект форму:  VBE – Insert – Userform
В активное окно формы UserForm1 из окна Toolbox перетащить на форму элемент Список (ListBox), зажав на форме левую кнопку мышки в верней левой точке расположения списка, протянув вниз и вправо и отпустив мышку.
1.6. На форме нажать F7 для перехода в область кода формы и вписать такой код:
Код
Option Explicit
 
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Обновленный код из сообщения #7
  With ActiveInspector.CurrentItem
    If .BodyFormat = olFormatHTML Then
      .HTMLBody = Me.ListBox1.List(Me.ListBox1.ListIndex) & .HTMLBody
    Else
      .BODY = Me.ListBox1.List(Me.ListBox1.ListIndex) & .BODY
    End If
  End With
End Su
 
Private Sub UserForm_Initialize()
  Me.ListBox1.List = Split(MyList, ";")
End Sub

1.7. Сохранить макросы нажатием Ctrl-S и закрыть VBE, нажав Alt-Q

2. Добавить кнопку макроса на панель быстрого доступа
2.1. Создать временно новое сообщение: вкладка Главная – Создать сообщение  
2.2. Открыть на вкладке Файл – Параметры -  Панель быстрого доступа
2.3. В списке 'Выбрать команды из:'  выбрать 'Макросы'
2.4. Выбрать пункт с названием макроса Welcome
2.5. Нажать кнопку ‘Добавить‘ для добавления кнопки макроса в список кнопок на ПБД
2.6. Для смены значка добавленной кнопки использовать кнопку 'Изменить' и в поле 'Символ' выбрать другой значок.   Для смены имени кнопки в поле 'Отображаемое имя' ввести новое имя, пробелы здесь разрешены. Нажать OK
2.7. Подтвердить изменения ПБД нажатием ОК
На панели быстрого доступа появится новая кнопка, с помощью которой можно запускать выполнение макроса.
Изменено: ZVI - 09.08.2018 17:15:30 (Обновление кода UserForm1 - см. сообщение #7)
 
Спасибо большое! Работает, но удаляет мою настроенную подпись ниже письма, что делать? как сделать что бы не удалял мою подпись?
Изменено: Аслан - 08.08.2018 13:00:39
 
Получается перед тем как нажать на значок и выбрать приветствие надо нажать на "Enter", тогда не удаляет подпись.
 
У Вас в настройках Outlook - Файл - Параметры - Почта - 'Создавать сообщения в следующем формате:' - выбран не 'HTML'. Тогда используйте более универсальный вариант кода ListBox1_DblClick в форме:
Код
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  With ActiveInspector.CurrentItem
    If .BodyFormat = olFormatHTML Then
      .HTMLBody = Me.ListBox1.List(Me.ListBox1.ListIndex) & .HTMLBody
    Else
      .BODY = Me.ListBox1.List(Me.ListBox1.ListIndex) & .BODY
    End If
  End With
End Sub


Имейте в виду, что при выборе HTML-формата письма  в подписи может быть и графический объект (логотип, фото и т.п.)
Изменено: ZVI - 08.08.2018 13:50:25
 
Спасибо большое! Помогли!
 
Рад, что помог, удачи Вам!
Изменено: ZVI - 08.08.2018 14:17:37
Страницы: 1
Наверх