■ Access VBA 実行コード
'拡張子に関連付けられたプログラムを実行する
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
Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Public Sub MyShellExec(sFina As String)
    Dim lRet As Long
    Dim sRet As String
    Dim vId As Variant
'sFinaで指定されたファイルを実行する
    lRet = ShellExecute(0&, vbNullString, sFina,
vbNullString, vbNullString, vbNormalFocus)
    If lRet > ERROR_SUCCESS Then
        sRet = ""
    Else
'エラー内容を調査します。
        Select Case lRet
            Case
ERROR_NO_ASSOC:
                vId
= Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
                    &
sFina, vbNormalFocus)
                lRet
= (vId <> 0)
            Case
ERROR_OUT_OF_MEM:
                sRet
= "エラー:メモリーが不足しています。ファイルを開く事ができません。"
            Case
ERROR_FILE_NOT_FOUND:
                sRet
= "エラー:ファイルが見つかりません。"
            Case
ERROR_PATH_NOT_FOUND:
                sRet
= "エラー:ファイルのあるフォルダーが見つかりません"
            Case
ERROR_BAD_FORMAT:
                sRet
= "エラー:ファイルを読む事ができません"
            Case
Else:
        End Select
    End If
    If sRet <> "" Then
'エラーが発生している場合、エラー内容のメッセージを表示します。
        sRet = sRet + vbCrLf +
"(" + sFina + ")"
        Beep
        MsgBox (sRet)
    End If
End Sub
'コマンドボタンクリックイベント
Private Sub コマンド0_Click()
    MyShellExec "test.html"
    End Sub