Office中国论坛/Access中国论坛

标题: 请问用VBA如何打开文件? [打印本页]

作者: 网络蜘蛛    时间: 2014-8-9 10:59
标题: 请问用VBA如何打开文件?
    效果:一个文本框里有文件的完整路径,点击按钮打开这个文件。
    要求:文件类型不确定,客户端安装了什么软件也不确定。比如,一个.doc文件可以用Word打开,也可以用WPS打开。.zip文件可以用WinZip打开,也可以用WinRAR打开。客户端装了什么软件无法预测。我想实现的效果,就相当于双击了这个文件,系统默认是什么软件就用什么软件打开。

    请前辈指点?晚生谢过!

作者: admin    时间: 2014-8-9 12:07
又一个Shell的 API函数,可以打开任意文件。你可以百度一次。网上这方面的资料很多
作者: 盗梦    时间: 2014-8-9 12:08
Shell函数 本身也可以打开任意文件。不过推荐用Shell的相关API函数
作者: 网络蜘蛛    时间: 2014-8-9 13:28
盗梦 发表于 2014-8-9 12:08
Shell函数 本身也可以打开任意文件。不过推荐用Shell的相关API函数

能推荐两个学习一下吗?
作者: 盗梦    时间: 2014-8-9 14:55
网络蜘蛛 发表于 2014-8-9 13:28
能推荐两个学习一下吗?

百度就有了 “ VB 打开任意文件 ”
网上很多的
作者: todaynew    时间: 2014-8-9 18:00
本帖最后由 todaynew 于 2014-8-9 18:02 编辑

if Shell("explorer.exe " & "文件地址", vbNormalFocus)=0 then exit sub
作者: 网络蜘蛛    时间: 2014-8-9 22:22
盗梦 发表于 2014-8-9 12:08
Shell函数 本身也可以打开任意文件。不过推荐用Shell的相关API函数

Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long '首先利用API中的ShellExecute函数,使用此函数可打开任意后缀名的文件
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "D:\123.txt", vbNullString, vbNullString, vbNormalFocus ‘具体打开指定目录的文件
End Sub

您说的是这个不?是不是应该用case 判断它的返回值,如果出错好给个反馈。
作者: 盗梦    时间: 2014-8-12 09:00
网络蜘蛛 发表于 2014-8-9 22:22
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (By ...

是的




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3