Суть проблемы
В MS Visio начиная с версии 2007 появилась возможность называемая «темы» (со слов разработчиков она предназначена «для придания схеме профессионального вида»)…
As we started working on the new version of Visio, we heard from you that it should be super-easy and fast to create professional looking diagrams in Visio. To help achieve this goal, we redesigned our themes, and created new formatting options and effects that can be quickly accessed using themes. Each theme also comes with four unique variants, giving you more flexibility to fine-tune your diagrams. If you want even more control, a set of styles is provided for each theme, allowing you to format any individual shape, using professionally designed styles and colors.
Мне по долгу службы часто приходится бороться с подобным «профессиональным видом». Дело в том, что мне приходится разрабатывать техническую документацию. Преимущественно рабочую документацию, где подобное «буйство красок» не приветствуется!

Из-за влияния тем могут измениться используемые шрифты, цвета линий и шрифта, заливка фигур, добавиться эффект «отражения» и тому подобные неожиданные явления!
Почему это случается ?
Дело в том, что по умолчанию к документу применена некая тема и включена галочка «Применить тему ко всем новым фигурам».

Или же пользователь случайно «применит тему» щелкнув по кнопке на ленте, на вкладке «Конструктор».
После этого ваша схема, которая должна иметь сдержанный (желательно черно-белый) вид становится вдруг голубой и зеленой…
Как с этим бороться
Самый надежный способ «предохраняться», т.е. использовать фигуры, имеющие защиту от влияния тем. Но это долго и сделать такое могут не только лишь все…
Один из пользователей русскоязычного сообщества пользователей Visio (@nbelyh) написал следующие строки:
Когда компьютеры взрослели,
А код входил на перфокарты
Тогда программы были проще,
И Visio средь них легендой.Но годы эти миновали,
А злая воля и продажность
Рожденье дали злу большому
Которое зовется "темы".Они отнюдь не безобидны,
Как в микрософте уверяют,
А применяются огульно
Ко всем фигурам устаревшим.И чтобы оградить потомков,
От богомерзкого разгула,
У мастеров всегда должна быть
Защита сделана примерно!
Если вы не предохранялись и ваш документ содержит лишь одну страницу, то это не беда: отключить «не нужное оформление» не долго. Хуже если документ многостраничный, самый простой способ перебрать все страницы документа и изменить текущие темы страницы на «Без темы». Разумеется в промышленных масштабах делать такое лучше макросом!
Впервые я столкнулся с этим в далеком уже 2014 году используя версию Visio 2010.
Тогда код для устранения последствий выглядел так:
Sub KillThemesFromDocuments() ' процедура для применения в Visio 2010 и старше
Dim pg As Page ' переменная - текущая страница
For Each pg In ActiveDocument.Pages ' перебор страниц в активном документе
pg.ThemeColors = "visThemeNone" ' установить цвет темы «Без темы»
pg.ThemeEffects = "visThemeEffectsNone" ' установить цвет темы «Без темы»
Next
ActiveDocument.RemoveHiddenInformation (visRHIStyles) ' удаление из документа неиспользуемых тем
End Sub
Не так давно смежники прислали документ со схемами в стиле «Пожар в джунглях». На этот раз я уже пересел на версию Visio 2019 и вышеуказанный код написанный в прошлом при запуске стал выдавать ошибку.
Как оказалось тут есть нюансы!
В версии Visio 2010 для сохранения документа с предлагался единственный вариант с расширением *.vsd.
Начиная с версии Visio 2013 добавился новый вариант расширения документа *.vsdx, причем этот вариант является расширением по умолчанию!

В таких документах при попытке программно изменить свойства страницы ThemeColors и ThemeEffects возникает ошибка.

Пришлось немного модифицировать мой код для поддержки нового формата файла, добавив проверку расширения файла и использовать методы SetTheme и SetThemeVariant.
Dim pg As page ' переменная - текущая страница
Sub KillThemesFromDocuments2022() ' процедура для применения в Visio 2013+
Dim IsVSD As Boolean ' документ сохранен в старом формате vsd
IsVSD = False
If Right(ActiveDocument, 3) = "vsd" Then IsVSD = True
If IsVSD Then
OldFix ' запускаем процедуру если документ в формате vsd
Else
ModernFix ' запускаем процедуру если документ в формате vsdx
End If
ActiveDocument.RemoveHiddenInformation (visRHIStyles) ' удаление из документа неиспользуемых тем
End Sub
Sub OldFix() ' процедура для файлов старого формата
For Each pg In ActiveDocument.Pages ' перебор страниц в активном документе
pg.ThemeColors = "visThemeNone" ' установить цвет темы «Без темы»
pg.ThemeEffects = "visThemeEffectsNone" ' установить цвет темы «Без темы»
Next
End Sub
Sub ModernFix() ' процедура для файлов нового формата
For Each pg In ActiveDocument.Pages ' перебор страниц в активном документе
pg.SetTheme 0, 0, 0, 0, 0 ' сброс настроек страницы в «Без темы»
pg.SetThemeVariant 0, 0, 0 ' сброс настроек страницы в «Без вариаций»
Next
End Sub
Заключение
Если вы дочитали это графоманство до конца и встретите в одном из документов подобные «чудеса» не паникуйте ! Просто примените один из выше приведенных кодов, для используемой вами версии продукта MS Visio.
Обновление (от 12.12.2022)
Не так давно на одном из форумов поднималась тема, связанная с изменением размеров всех листов документа. Оказалось существует кнопка, которая позволяет сделать это одним кликом. Главное верить знать, что кнопка существует и найти эту кнопку!

Не буду вас сильно томить…

Кнопку можно увидеть, если щелкнуть правой кнопкой мыши по списку тем на ленте.

Наведя мышь на некоторую тему можно увидеть к каким из страниц документа применена данная тема. Тему можно применить к текущей странице или ко всем страницам документа.
Я бился с темами начиная с 2014 года, а дело оказалось в одной «тщательно запрятанной кнопке»! Уже после этого открытия мне удалось таки найти в архиве блога «О Visio по-русски» пост Темы и их параметры.
Praemonitus, praemunitus - Кто предупреждён, тот вооружён!
Иными словами, будучи предупреждённым о некоторой опасности (или возможности), человек теперь к ней подготовлен и должен с нею справиться…