他のアプリケーションを起動・指定ファイルを開く

外部アプリケーションの起動及び、指定ファイルを開きます。

@Shell 関数を使う
  • #1 アクティブなメモ帳を開く

  • #2 フルパスで電卓を開く

  • ACreateObject メソッドを使う
  • #1 Internet Explorerを起動し、指定のWeb ページを開く

  • #2 Excelを起動し、指定のExcelファイルを開く

  • BWindows Script Host - WScript.Shellを使う
  • #1 アクティブなメモ帳を開く

  • #2 アプリケーションを指定してファイルを開く

  • CWin32API - ShellExcuteを使う
  • #1 拡張子に関連付けされたアプリケーションでファイルを開く

  • #2 アプリケーションを指定してファイルを開く
  • @Shell 関数を使う

    Shell(pathname[,windowstyle])

    引数:pathname(必ず指定します)

    windowstyle(省略可:ヘルプを参照してください)

    使用例

    #1 アクティブなメモ帳を開きます

    Call Shell("NOTEPAD.EXE", 1)

    #2 フルパスで電卓を開きます

    Call Shell("C:\WINDOWS\system32\CALC.EXE", 1)

    ACreateObject メソッドを使う

    使用例

    #1 Internet Explorerを起動し、指定のWeb ページを開く

    Sub ShowIE()
    
        Dim objIE As Object, strURL As String
        Set objIE = CreateObject("InternetExplorer.Application")
    
        strURL = "URLまたは、ファイルパスを指定"
        
        With objIE
            .Visible = True
            .Navigate strURL
        End With
    End Sub
    

    #2 アプリケーションを指定してファイルを開きます。

    Sub WSHShowFileOpen()
        Dim WshShell As Object
      Dim strFullPath As String
      strFullPath = "フルパス名"
    
        Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run "C:\WINDOWS\NOTEPAD" & strFullPath
        Set WshShell = Nothing
    End Sub 
    

    AWindows Script Host - WScript.Shellを使う

    使用例

    #1 アクティブなメモ帳を開きます

    Sub WSHShowAppOpen()
        Dim WshShell As Object
        Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run "%windir%\NOTEPAD"
        Set WshShell = Nothing
    End Sub 
    

    #2 アプリケーションを指定してファイルを開きます。

    Sub WSHShowFileOpen()
        Dim WshShell As Object
      Dim strFullPath As String
      strFullPath = "フルパス名"
    
        Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run "C:\WINDOWS\NOTEPAD" & strFullPath
        Set WshShell = Nothing
    End Sub 
    

    BWin32API - ShellExcuteを使う

    宣言します。

    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
    
    Const SW_SHOW = 1           'ウインドウをアクティブにする
    Const SW_SHOWMAXIMIZED = 3  'ウィンドウをアクティブにして最大化する
    Const SW_SHOWMINIMIZED = 7  'ウィンドウをアクティブにして最小化する
    

    #1 拡張子に関連付けされたアプリケーションでファイルを開きます。

    Sub ShowFileOpen()
        Dim lnghwnd As Long
      Dim strFullPath As String
      strFullPath = "フルパス名"
    
      ShellExecute lnghwnd, "Open", strFullPath, "", "", SW_SHOW
    End Sub 
    

    #2 アプリケーションを指定してファイルを開きます。

    Sub ShowFileOpenSETApp()
        Dim lnghwnd As Long
        Dim strApp, strFilePath, strFileName As String
        
        'デスクトップにあるTest.txtを最大化したワードパッドで開きます(...はユーザー名)
    
        strApp = "C:\Program Files\Windows NT\Accessories\wordpad.exe"
        strFilePath = "C:\Documents and Settings\...\デスクトップ\"
        strFileName = "Test.txt"
    
        ShellExecute lnghwnd, "Open", strApp, strFileName, strFilePath, SW_SHOWMAXIMIZED
    End Sub