项目VBA获取文件名

时间:2016-08-26 14:52:44

标签: vba

我正在尝试使用MS Project 2013打开一个filechooser框,选择一个.pptx文件,然后打开它。

如果我在VBA中写下文件路径,我的代码会毫无问题地打开pptx并执行它必须做的事情。

我的问题是,不知怎的,我不能使用msoFileDialogFilePicker对象。我已将我的引用设置为使用MS Word对象库,应用程序的Visual Basic,甚至是Excel对象,但无论我选择何种引用,Application对象都无法识别它。

我也试过了getOpenFilename方法,但是应用程序也没有识别它。

到目前为止我的代码:

Dim strTemplatePPT As String
strTemplatePPT = Application.GetOpenFilename("Modelos de PowerPoint,*.pptx*", 1, "Abrir Arquivo", , False)

Set ppAppl = CreateObject("PowerPoint.Application")
ppAppl.Visible = True
Set ppPres = ppAppl.Presentations.Open(strTemplatePPT, msoFalse)

有人有这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

正如jsheeran所说,可以在ppAppl对象中使用FileDialog()方法,如下所示:

Dim strTemplatePPT As String
Dim ptr_fileDialog As FileDialog

Set ppAppl = CreateObject("PowerPoint.Application")

Set ptr_fileDialog = ppAppl.FileDialog(msoFileDialogFilePicker)
ptr_fileDialog.Title = "Escolha o arquivo de Template"
ptr_fileDialog.Filters.Clear
ptr_fileDialog.Filters.Add "Arquivo Powerpoint", "*.pptx"
ptr_fileDialog.Show
strTemplatePPT = ptr_fileDialog.SelectedItems(1)

If (strTemplatePPT = "-1") Then Exit Sub

ppAppl.Visible = True
Set ppPres = ppAppl.Presentations.Open(strTemplatePPT, msoFalse)

即使Project没有自己打开fileDialog,我也可以使用powerpoint实例将结果发送回Project,因为无论如何我都会使用powerpoint来代替我的代码。

非常感谢信息人:)