関連付けられたファイルを開く : Access

実行ファイル(Exeファイル)は、Shellで開くことができますが、テキストファイルやHtmlファイルなどのデータ用ファイルを開く場合は、ShellExecuteを使います。

ShellExecuteを使うと関連付けられたファイルを開くことができます。もし、開かない場合は、ファイルの関連付けを事前に行う必要があります。
ファイルの関連付けを変更する方法
1. マイ コンピュータまたはエクスプローラで関連付けを変更する拡張子のファイルを右クリックし、[プログラムから開く] をクリック
2. [プログラムの選択] ダイアログ ボックスで、ファイルを開くプログラムをクリックするか、[参照] をクリックして使用するプログラムを指定
3. [この種類のファイルを開くときは、選択したプログラムをいつも使う] チェック ボックスをオンにする


BackHome BackTips Backメニュー

Accessフォームの[関連付けられたファイルを開く]ボタンで実行を開始します。


成功すると指定したファイルを開きます。


失敗するとエラーメッセージが表示されます。

■ Access VBA 実行コード

Option Compare Database
Option Explicit

'関連付けられたファイルを開くAPI
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 SW_HIDE = 0   'ウィンドウ非表示
Private Const SW_SHOWNORMAL = 1 '通常の状態で開く
Private Const SW_SHOWMINIMIZED = 2  'ウィンドウ最小化
Private Const SW_SHOWMAXIMIZED = 3   'ウィンドウ最大化
Private Const SW_SHOW = 5   'ウィンドウを現在の位置とサイズで表示
Private Const SW_RESTOR = 6 'ウィンドウを元の位置とサイズで表示

Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&

'関連付けられたファイルを開く
Private Sub AcOpenKanrenFile()
    Dim lret As Long
    Dim msg As String
    lret = ShellExecute(0, "open", "c:\sitemap.html", vbNull, vbNull, SW_SHOW)
    If lret < 31 Then
         Select Case lret
             Case 0
                 msg = "メモリ不足です。"
             Case ERROR_FILE_NOT_FOUND
                 msg = "ファイルが見つかりません。"
             Case ERROR_PATH_NOT_FOUND
                 msg = "ファイルのパスが見つかりません。"
             Case Else
                 msg = lret & "その他のエラー"
         End Select
         MsgBox msg, 16
     End If
End Sub

Private Sub コマンド6_Click()
    AcOpenKanrenFile
End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft