Excel VBA:関連付けられたファイルを開く/ShellExecuteの使い方

ExcelでShellExecuteを使い関連付けられたファイルを開くVBAを掲載しています。




Homeに戻る > Excel ファイル操作のTipsへ

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

ShellExecuteを使うと関連付けられたファイルを開くことができます。

もし、開かない場合は、ファイルの関連付けを事前に行う必要があります。

ファイルの関連付けを変更する方法

1. マイ コンピュータまたはエクスプローラで関連付けを変更する拡張子のファイルを右クリックし、[プログラムから開く] をクリック

2. [プログラムの選択] ダイアログ ボックスで、ファイルを開くプログラムをクリックするか、[参照] をクリックして使用するプログラムを指定

3. [この種類のファイルを開くときは、選択したプログラムをいつも使う] チェック ボックスをオンにする


関連する「外部アプリケーションの起動方法|Shell関数の使い方」を掲載していますので、参考にしてください。



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


ExcelシートのVBAコード

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 ExOpenKanrenFile()
    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 CommandButton1_Click()
    ExOpenKanrenFile
End Sub


Excel実行画面

「開く」ボタンをクリックすると、実行を開始します。

Excel 「開く」ボタン

成功した場合、指定したHtmlファイルが開きます。

サイトマップ(SiteMap)が表示された

エラーが発生した場合、メッセージが表示されます。

ファイルが見つかりません のエラーが表示された


Homeに戻る > Excel ファイル操作のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved