项目VBA获取文件名
Posted
技术标签:
【中文标题】项目VBA获取文件名【英文标题】:project VBA get filename 【发布时间】:2016-08-26 14:52:43 【问题描述】:我正在尝试使用 MS Project 2013 打开一个文件选择器框,选择一个 .pptx 文件,然后打开它。
如果我在 VBA 中记下文件路径,我的代码会毫无问题地打开 pptx 并做它必须做的事情。
我的问题是我无法使用 msoFileDialogFilePicker 对象。我已将引用设置为使用 MS Word 对象库、Visual basic for Applicaitons 甚至 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)
有人遇到过这个问题吗?
谢谢。
【问题讨论】:
你想怎么打电话给FileDialog()
? Project 似乎不支持此方法,但您应该可以在您的 ppAppl
对象上调用它。
也许你可以从this post中受益
【参考方案1】:
正如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。
非常感谢提供信息的人:)
【讨论】:
以上是关于项目VBA获取文件名的主要内容,如果未能解决你的问题,请参考以下文章