#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 |
|||
|
Copyright © T'sWare All rights reserved |