2015-10-28 4 views
3

Мне нужно, чтобы изменить элементы в раскрывающемся списке времени начала и окончания, которые будут находиться на расстоянии 5 минут.. Кажется, нет простого способа установить это, поэтому я пытаюсь VBA.Outlook Appointment - как изменить элементы в раскрывающемся списке «Время начала»

я могу получить инспектор искать при открытии формы назначения:

If Inspector.CurrentItem.Class = olAppointment Then 

... но я не знаю как сослаться или изменить время управления выпадающего начала/конца чтобы иметь список раз, в которое я хочу.

Если кто-нибудь знает альтернативный метод, позволяющий пользователю выбирать время в пределах 5 минут, это тоже было бы здорово!

+0

Как это было бы просто, если Outlook имел макрорекордер? Я не вижу возможности изменить раскрывающийся список через стандартный пользовательский интерфейс. Рассматривали ли вы использование пользовательской формы или настраиваемой формы Outlook - или она должна быть родной? – DanL

+0

С помощью макрорекордера я могу потенциально узнать, как ссылаться на элементы формы, изменяя их значения и видя, что происходит в коде, или, по крайней мере, получить представление о том, как организованы элементы управления. – notnot

+0

Мой босс хочет, чтобы это было беспрепятственно - пользователям не нужно было ничего делать, как обычно, при настройке или изменении назначения. – notnot

ответ

3

Проверьте недвижимость Appointment.Start. Используйте следующую функцию, чтобы получить текущий объект

Function GetCurrentItem() As Object 
    Dim objApp As Outlook.Application 
    Set objApp = Application 
    On Error Resume Next 
    Select Case TypeName(objApp.ActiveWindow) 
    Case "Explorer" 
    Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) 
    Case "Inspector" 
    Set GetCurrentItem = objApp.ActiveInspector.CurrentItem 
    End Select 
    GetCurrentItem.UnRead = False 
    Set objApp = Nothing 
End Function 
+0

Где я должен использовать эту функцию? Какое событие я бы назвал? Я бы хотел не только ссылаться на управление выпадающим временем начала, но и иметь возможность независимо ссылаться на него в совершенно другой функции, не требуя сначала взаимодействия с пользователем. – notnot

+0

Свойство «Начать» было бы здорово, если бы я пытался самостоятельно, в коде, установить время начала, но мне нужно изменить, какие параметры находятся в раскрывающемся списке времени запуска, чтобы пользователь мог просто выбрать время, которое они хотят. – notnot

3

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

This Website расскажет, как настроить встречу с пользовательским временем начала и продолжительностью, но вы можете создать свою собственную пользовательскую форму для всплытия всякий раз, когда создается собрание/назначение, запрашивающее время начала и окончания (или время начала & продолжительности, если вы предпочитаете), что, вероятно, является наилучшим способом преодоления У тебя получится.

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

Вне VBA/Outlook вы можете использовать Visual Studio для создания надстройки VSTO, создавая новую ленту в секции встречи/встречи, которая имеет два настраиваемых элемента управления, которые изменяют даты начала и окончания. Вы также можете заполнить их любым кодом, который вам нужен, но вам, вероятно, потребуется изучить C# для этого, хотя это возможно с помощью VB.net (что гораздо больше похоже на VBA). This Website является разумной отправной точкой.

Прошу прощения, что на самом деле это не ответ, но я боюсь, что на этот вопрос нет удовлетворительного ответа.

+0

Спасибо за ответ! Мой босс просто предположил, что это будет легко, так как макросы Excel и Word настолько легкие и гибкие, но я думаю, что она была неправа. Мы не очень хотим приложить время, чтобы изучить и разработать новую технологию, чтобы сделать эту работу, поскольку это не было большим приоритетом в первую очередь. – notnot