ShellEx()
ファイルを関連づけられたアプリケーションから開きます。
またこの ShellExecute() 関数は、ファイルだけではなく、「mailto:」で始まる文字列を引数として与えるとメーラが起動したり、「http://」なら標準のブラウザが起動したりと、様々な使いでのある
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 Public Const SW_SHOWNORMAL = 1 '通常ウィンドウ Public Const SW_SHOWMINIMIZED = 2 '最小化 Public Const SW_SHOWMAXIMIZED = 3 '最大化 Public Sub ShellEx(lngHWnd As Long, strFilePath As String, strWorkPath As String, lngWindowSize As Long) 'ShellExecute関数を呼び出し、ファイルを関連付けされているアプリケーションで開く '<引数> ' lngHWnd : フォームのウィンドウハンドル ' strFilePath : 開きたいファイルのフルパス名("http://"や"mailto:" も可) ' strWorkPath : 作業フォルダのフルパス名 ' lngWindowSize : アプリケーションウィンドウの大きさ ' 1=通常サイズで開く / 2=最小化して開く / 3=最大化して開く Dim lngRet As Long Dim strMes As String lngRet = ShellExecute(lngHWnd, "Open", strFilePath, strMes, strWorkPath, lngWindowSize) End Sub
実行例:
'フォームにボタンを用意して、以下のプロシージャを記述します。 Private Sub Command1_Click() '標準のメーラを起動して、「hoehoe@hoehoe.com」へのメール編集を行います。 'ただし、メーラによっては動作しないこともあります。 Call ShellEx(Me.hwnd, "mailto:hoehoe@hoehoe.com", "", SW_SHOWNORMAL) End Sub