Форум по VBA и MS Office

Outlook => Макросы в Outlook => Тема начата: Посетитель 01.01.2025 от 01 января 2025, 18:34

Название: макрос изменения цвета шрифта
Отправлено: Посетитель 01.01.2025 от 01 января 2025, 18:34
Здравствуйте, макрос в Outlook 2016 выдает ошибку Sub or Function not defined

Sub Red()
'
' Red Макрос
'
  Application.ActiveInspector.WordEditor.Application.Selection.Font.ColorIndex = wdRed
End Sub

Просьба помочь найти ошибку, спасибо
Название: макрос изменения цвета шрифта
Отправлено: Администратор от 01 января 2025, 18:54
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA и MS Office". Написал именно на почту, а не на форум.

Есть два варианта, как устранить проблему.

Вариант 1

Вместо wdRed используйте число, которое соответствует wdRed:

Sub Red()
'
' Red Макрос
'
  Application.ActiveInspector.WordEditor.Application.Selection.Font.ColorIndex = 6
End Sub

Вариант 2

Подключите библиотеку: Tools - References... - Microsoft Word 16.0 (или другая версия) Object Library.
В этом случае Аутлук поймёт, что такое wdRed.


Примечание

wdRed относится к программе Word, поэтому программе Outlook ничего не известно о wdRed.
Кроме того, обратите внимание на префикс wd - это означает, что это слово относится к программе Word.
Название: макрос изменения цвета шрифта
Отправлено: Посетитель 01.01.2025 от 02 января 2025, 09:13
Здравствуйте, попробовал оба варианта, продолжаю получать те же сообщения: Sub or Function not defined
Название: макрос изменения цвета шрифта
Отправлено: Администратор от 02 января 2025, 10:29
Какой-нибудь фрагмент кода VBA закрашивает во время ошибки?
Как вы запускаете процедуру Red? Кнопкой?
Во время запуска процедуры Red, курсор где у вас находится? В сообщении или ещё где?
Название: макрос изменения цвета шрифта
Отправлено: Посетитель 01.01.2025 от 02 января 2025, 11:45
- выделяю текст в теле ответного письма (открываемого в новом окне)
- нажимаю Alt+F8
- дважды кликаю Red в списке макроосов
- открывается окошко VBAProject.OTM, и одновременно модуль Red и окошко с сообщением Sub or Function not defined.

фрагмент кода не закрашивается
Название: макрос изменения цвета шрифта
Отправлено: Администратор от 02 января 2025, 12:19
Вручную, без макроса вы можете закрасить текст? Просто нажимая кнопки в самом Аутлуке на Панели инструментов?

У меня работает ваш код, но нужно, чтобы у письма был формат не "Обычный текст", а или "Формат HTML", или "Формат RTF".

Какие я делал действия:

Использовал этот макрос:

Sub Red()
'
' Red Макрос
'
  Application.ActiveInspector.WordEditor.Application.Selection.Font.ColorIndex = 6
End Sub

Если не работает у вас, то попробуйте установить обновления для Офиса. Иногда происходит какая-то ерунда, когда не установлены обновления, а вы только с диска установили Офис.
Название: макрос изменения цвета шрифта
Отправлено: Посетитель 01.01.2025 от 03 января 2025, 08:29
Здравствуйте,

Обновлялся недавно, но макросы создавались до обновления, удалил все макросы, создал новые - все заработало!

Спасибо Вам большое!