#039 ファイルタイプ(拡張子)に関連付けられたアプリケーションでファイルを開く方法 VBA、API

".TXT"ならメモ帳やテキストエディタ、".BMP"ならペイントブラシ、".MDB"ならAccess、といったぐあいに、ファイルタイプ(拡張子)に関連付けられたアプリケーションでそのファイルを開くには、"SHELL32.DLL"にあるWindowsAPIの「ShellExecute」関数を使用します。

まず標準モジュールに次のコードを記述します。"Declare"の前に"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


以下のコードは、「ShellExecute」関数を使用して Windows フォルダにある「雲.BMP」を、ペイントブラシなどの".BMP"拡張子に関連したアプリケーションで開くためのサンプルコードです。変数 strFilePath をプロシージャの引数にしたり、「ShellExecute」の返り値がエラーの場合の処理内容をアレンジする程度でご自分のコードに適用できると思います。
Dim strFilePath As String
Dim lngRet As Long
Const SW_SHOWNORMAL = 1

strFilePath = "C:\Windows\雲.BMP"

'WinAPIを使って関連付けられたアプリケーションを起動
lngRet = ShellExecute(Application.hWndAccessApp, "OPEN",  _
                 strFilePath, vbNullString, CurDir(), SW_SHOWNORMAL)

If lngRet <= 32 Then
  '返り値が 32 以下の場合はエラー
  MsgBox "ファイルを開けません!", vbOKOnly + vbExclamation
End If
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved