
Я создал два представления, одно из которых показывает назначения на весь день, а другое — не показывает. Я хочу, чтобы при переключении на дневное представление отображались назначения на весь день, но при переключении на рабочую неделю или месяц я хочу переключиться на представление, не отображающее назначения на весь день. Как это сделать
Или есть ли способ уменьшить размер той части дня, где отображаются встречи на весь день?
Я что-то упустил? Не имеет смысла, что я могу определять разные виды, но не могу задать вид по умолчанию для каждой компоновки отдельно.
решение1
К сожалению, День/Неделя/Месяц — это всего лишь расположение одного представления, а не отдельные представления. Поэтому вы можете отфильтровать все дневные встречи с помощью Расширенного фильтра (Событие на весь день не равный Да), но это будет применяться ко всем договоренностям.
В качестве альтернативы вы можете создать два представления «День/Неделя/Месяц», одно из которых будет фильтровать события за весь день, а другое — нет.
Способ VBA. Вам нужно будет создать отдельное представление для каждого из расположений (в примере ниже это представления с именами «Дни», «Недели» и «Месяцы»):
Public WithEvents OutlookExplorer As Outlook.Explorer
Private Sub Application_Startup()
Set OutlookExplorer = ActiveExplorer
End Sub
Private Sub OutlookExplorer_ViewSwitch()
Set View = OutlookExplorer.CurrentView
If View.ViewType = 2 Then
If View.Name = "Days" And View.CalendarViewMode <> 0 Then
View.CalendarViewMode = 0
View.Save
ElseIf View.Name = "Weeks" And View.CalendarViewMode <> 1 Then
View.CalendarViewMode = 1
View.Save
ElseIf View.Name = "Months" And View.CalendarViewMode <> 2 Then
View.CalendarViewMode = 2
View.Save
End If
End If
End Sub
Теперь правильное расположение будет применяться автоматически при переключении на один из пользовательских видов («Дни», «Недели» или «Месяцы»). Кроме того, вы можете разместить кнопку «Изменить вид» прямо на вкладке «Главная» на ленте календаря.