今、ファイルリストで選択された任意のファイルを開く機能を、
プログラムに組み込もうと思っているのですが、
WordやExcel(その他のアプリケーション含む)で保存したファイルを
VBから開く(拡張子に関連付けられているプログラムで)ことは出来るでしょうか?
Microsoftのホームページに
ファイルの関連付けを元にプログラムを実行させる方法が出ています。
http://www.microsoft.com/JAPAN/support/kb/articles/J020/9/32.htm
以下はxxxxx.htmを関連づけられているプログラム(IE)で開いています。参考になるでしょうか?
'ブラウザでhtmを表示
Dim r&
'URLを実行する
r = ShellExecute(GetDesktopWindow, "open", "xxxxx.htm", vbNullString, "", SW_SHOW)
Select Case r
Case SE_ERR_ASSOCINCOMPLETE
MsgBox "ファイル名の関連付けが不完全、 または無効です。", vbInformation
Case SE_ERR_NOASSOC
MsgBox "指定されたファイル名拡張子には、 アプリケーションが関連付けられていません。", vbInformation
Case 0
MsgBox "システムリソースが不足しています。", vbInformation
Case ERROR_FILE_NOT_FOUND
MsgBox "HTMLファイルが見つかりません。", vbInformation
Case ERROR_PATH_NOT_FOUND
MsgBox "パスが見つかりません。", vbInformation
Case ERROR_BAD_FORMAT
MsgBox "ブラウザが起動できませんでした。", vbInformation
End Select
ogawaさん、ZOROさんありがとうございました。
ShellExecuteでうまくいきました。
MSDNにも載ってたんですね、
なかなか検索では目当てのHELPが引っかからないものですね。
APIの本が手元に無いのでよくわからないのですが、
HELPでは第2引数がNullで、実際動かしたプログラムも
Nullにして動いてます。
ファイルの関連付けをするダイアログの"アクション"に
関係してるんでしょうか?
この"アクション"の意味もわからないんですが、
Nullでもよいのでしょうか?
やっぱりAPIの本を買って調べたほうがいいかもしれないですね。
ありがとうございました。
ツイート | ![]() |