MyTetra Share
Делитесь знаниями!
Outlook 2013 VBA: сохранить пользовательские настройки
20.07.2018
23:26
Раздел: VBA - Outlook


Outlook 2013 VBA: сохранить пользовательские настройки


2 434

В настоящее время в офисе у нас есть Outlook 2003. Мы перейдем на Outlook 2013. В Outlook 2003 у нас есть командная строка, которая в качестве примера сохраняет почтовый элемент в указанной пользователем папке или перемещается пункт в нужную команду. В пользовательской форме конечный пользователь может установить свои настройки в нужную папку или выбрать команду, в которой он сейчас находится. В этой форме настроек есть несколько полей ввода, которые пользователь может заполнить. Всякий раз, когда он нажимает кнопку на CommandBar, прогноз проверяет свои параметры, чтобы увидеть на какой команде он находится, его желательные сохранить папки и т.д. Это определяемые пользователем настройки хранятся и призвали на это теги (Application.ActiveExplorer.CommandBars("Toolbar").Controls.Item(1).tag)

As далеко я нашел в Интернете Outlook 2013 не поддерживает командные строки. Я могу установить commandBar, но как только вы перезапустите Outlook, панель исчезнет, ​​а настройки исчезнут.

Есть ли способ сохранить/сохранить настройки, сделанные конечным пользователем в пользовательской форме, чтобы сценарии сохраняли почтовый элемент на основе его настроек в правильной папке или команде?

Я попытался найти решение, но еще не нашел его или не знаю, где искать.

Надеюсь, вы можете направить меня в правильном направлении, чтобы найти решение.

(примечание:.. Я знаю немного VBA, может читать и писать, но было трудно объяснить, как это работает Если я оставил некоторую критическую информацию в этом вопросе, пожалуйста, дайте мне знать)

0

я не использовал Outlook 2013, но я думаю, вы можете сохранить настройки, используя множество различных методов как на любом клиенте Windows, например, в реестре, в файле настроек (XML или другом) и т. д. Кроме того, новые продукты Office используют ленту вместо командной строки, см. «Настройка ленты для Outlook» в MSDN: https: // msdn. microsoft.com) /en-us/library/bb398246.aspx – Olle Sjögren 21 апр. 15

1

Outlook не позволяет настраивать интерфейс ленты с помощью VBA. Единственное, что вы можете сделать, это назначить макрос кнопке QAT (или добавить элементы управления вручную в Outlook).

Вам необходимо разработать надстройку, чтобы иметь возможность настраивать интерфейс ленты (например, свободный пользовательский интерфейс). См. Walkthrough: Creating a Custom Tab by Using the Ribbon Designer для получения дополнительной информации.

Подробнее о Fluent UI в следующей серии статей в MSDN:

Есть ли способ, чтобы сохранить/магазин настройки, сделанные конечным пользователем в пользовательской форме, поэтому скрипты сохраняют почтовый элемент на основе его настройки gs в правильную папку или команду?

Использование свойства Tag не является наилучшим способом сохранения пользовательских настроек. Конечно, вы можете использовать стандартные способы хранения настроек на ПК - файлы (XML, текст или собственный бинарный формат), реестр Windows и т. Д.

Но объектная модель Outlook предоставляет скрытые элементы для этого. Метод GetStorage класса Folder возвращает объект StorageItem в родительской папке для хранения данных для решения Outlook. См. Storing Data for Solutions для получения дополнительной информации.

0

У меня нет Visual Studio, и из-за политик регистр заблокирован. Но метод GetStorage, кажется, является ответом для сохранения этих параметров. Для ленты я думаю, что можно создать XML-файл, сохранить его на сетевом ресурсе и, возможно, с загрузочным событием загрузить этот XML-файл. Я займусь этим. Если я его заработаю, я отправлю свой код, чтобы другие могли его использовать. Спасибо вам за азерсеров. – Rob 23 апр. 15


1

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

Прежде всего, я сделал небольшую проверку, чтобы проверить, нет ли настроек.

Function Hidden_Settings_Aanwezig() As Boolean


Dim oNs As Outlook.Namespace

Dim oFL As Outlook.folder

Dim oItem As Outlook.StorageItem


On Error GoTo OL_Error


Set oNs = Application.GetNamespace("MAPI")

Set oFld = oNs.GetDefaultFolder(olFolderInbox)

Set oItem = oFld.GetStorage("Hidden Settings", olIdentifyBySubject)


If oItem.Size <> 0 Then

Hidden_Settings_Aanwezig = True

Else

Hidden_Settings_Aanwezig = False

End If


Exit Function

OL_Error:

MsgBox (Err.Description)

Err.Clear


End Function


Если нет, то следующий код создает параметры, основанные на tekstboxes и флажки на UserForm со следующим кодом

Function Maak_Settings_Hidden()


Dim oNs As Outlook.Namespace

Dim oFld As Outlook.folder

Dim oSItem As Outlook.StorageItem


On Error GoTo OL_Error


Set oFld = Application.Session.GetDefaultFolder(olFolderInbox)

Set oSItem = oFld.GetStorage("Hidden Settings", olIdentifyBySubject)


'repeat the next to lines for every setting you want to store

oSItem.UserProperties.Add "Export Folder", olText

oSItem.UserProperties("Export Folder").Value = TextBox1.Text


oSItem.Save


Exit Function

OL_Error:

MsgBox (Err.Description)

Err.Clear


End Function


функция выше, называется по следующему коду:

If Hidden_Settings_Aanwezig = True Then

Call Get_Hidden_Settings_Startup

Else

Maak_Settings_Hidden

End If


Чтобы использовать один из параметров, я использую следующий код. В основном к югу я использую следующую строку:

DestFolder = Get_Hidden_Settings("Export Folder")


Для вызова на этой функции:

Function Get_Hidden_Settings(Setting) As String


Dim oNs As Outlook.Namespace

Dim oFL As Outlook.folder

Dim oItem As Outlook.StorageItem


On Error GoTo OL_Error


Set oNs = Application.GetNamespace("MAPI")

Set oFld = oNs.GetDefaultFolder(olFolderInbox)

Set oItem = oFld.GetStorage("Hidden Settings", olIdentifyBySubject)


If oItem.Size <> 0 Then

Get_Hidden_Settings = oItem.UserProperties(Setting)

End If


Exit Function

OL_Error:

MsgBox (Err.Description)

Err.Clear


End Function


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования