Ich schrieb ein Visual Basic-Makro zum Archivieren von Anlagen für Outlook 2007, fand aber keine völlig zufriedenstellende Möglichkeit zum Anzeigen einer Verzeichnisauswahl aus dem Outlook-Makro. Jetzt weiß ich nicht viel über Windows-APIs oder VB (A) -Programmierung, aber der "Standard" Windows-Dateidialog, den ich am häufigsten in Microsoft-Anwendungen sehe, scheint eine offensichtliche Wahl zu sein, aber es scheint nicht leicht verfügbar zu sein aus Outlook-Makros.Verzeichnis-Picker für Visual Basic-Makro in MS Outlook 2007
Idealerweise sollte die Verzeichnisauswahl zumindest erlauben, manuell einen Dateipfad/URI als Startpunkt für die Navigation einzufügen, da ich manchmal bereits ein Explorer-Fenster für das gleiche Verzeichnis geöffnet habe.
Was sind die besten Optionen für Verzeichnisauswahl in Outlook-Makros?
Zwei Dinge, die ich schon ausprobiert und finden nicht völlig zufrieden stellend sind (der Code vereinfacht und w/o Handhabung Fehler und wahrscheinlich läuft auch in älteren Outlook-Versionen):
1) Mit Shell.Application
die es nicht erlaubt ich tatsächlich einen Startpunkt über die Zwischenablage einfügen oder andere Operationen ausführen, wie das Umbenennen von Ordnern:
Set objShell = CreateObject("Shell.Application")
sMsg = "Select a Folder"
cBits = 1
xRoot = 17
Set objBFF = objShell.BrowseForFolder(0, sMsg, cBits, xRoot)
path = objBFF.self.Path
2) mit der Office.FileDialog
von Microsoft Word 12.0 Object Library
(über Werkzeuge/Referenzen) und dann Word-Datei-Dialog, die irgendwie immer annehmen mein Vista System zu erscheinen und bringen Word nicht immer wirklich in den Vordergrund. Stattdessen ist Outlook manchmal blockiert und der Dateidialog bleibt irgendwo im Hintergrund hängen:
Dim objWord As Word.Application
Dim dlg As Office.FileDialog
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application")
End If
objWord.Activate
Set dlg = objWord.FileDialog(msoFileDialogFolderPicker)
path = dlg.SelectedItems(1)
Irgendwelche anderen Ideen?