2011-05-04 36 views
5

我想創建一個'另存爲'文件對話框與過濾器,但這似乎不可能使用FileDialog類(Microsoft Office 12.0對象庫)。文檔實際上提到了這個here,見最後一段,但沒有理由爲什麼?有沒有另外一種方法在vb中實現這一點?MS Office SaveAs類型FileDialog與過濾器在vb

我覺得奇怪的是,FileDialog類不允許這樣做,因爲Word,Excel和Access都內置了這個確切的SaveAs功能。

我意識到FileDialog可以創建爲FilePicker(msoFileDialogFilePicker),它允許使用過濾器,但是這樣做不允許選擇一個尚不存在的文件,這會影響整個點。

回答

0

作爲@AlexK提到的唯一方法是使用Windows API調用。請參見here

0

由於某種原因,這似乎是該特定班級的限制,那麼怎麼樣;

Dim vResult As Variant 
vResult = Application.GetSaveAsFilename("default.blah", "blah files,*.blah,Text file,*.txt,All files,*.*", 0, "Title") 
If VarType(vResult) = vbBoolean Then 
    MsgBox "cancelled" 
Else 
    MsgBox vResult 
End If 
+1

Application.GetSaveAsFilename僅在Excel中可用。我希望得到更一般的答案,所以我可以在Access中使用它。 – David 2011-05-05 09:00:20

+2

只能用GetSaveFileName API的其他方法,有很多VBA示例(或者在訪問時通過COM調用Excel的GetSaveAsFilename,但這似乎有點討厭) – 2011-05-05 09:33:30