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

戻る