■ GetOpenFileName

ファイル選択のダイアログを表示します
初期表示のパスは、C:\ としていますが、デスクトップのパスなどを取得して表示するとよいでしょう
これを指定しないと、カレントフォルダが表示されてしまうことになります
この API を呼び出すにはフォームが必要になります
ここでは Form1 としています
ファイル選択を行うと、戻り値として 0以外の値が返されます

Const MAX_PATH = 260                        ' ファイルパス長
Const OFN_FILEMUSTEXIST = &H1000            ' 既存のファイルだけ入力できるようにする
Const OFN_HIDEREADONLY = &H4                ' 読み取り専用チェックボックスを表示しない

Type OPENFILENAME
    lStructSize         As Long             ' この構造体の長さ
    hWndOwner           As Long             ' 呼び出し元ウインドウハンドル
    hInstance           As Long             ' モジュールのインスタンスハンドル
    lpstrFilter         As String           ' フィルタ文字列
    lpstrCustomFilter   As String           ' ユーザー定義のフィルタ文字列のペア
    nMaxCustrFilter     As Long             ' lpstrCustomFilterのバッファサイズ
    nFilterIndex        As Long             ' フィルタコンボボックスの初期インデックス値
    lpstrFile           As String           ' 選択されたファイル名のフルパス
    nMaxFile            As Long             ' lpstrFileのバッファサイズ
    lpstrFileTitle      As String           ' 選択されたファイル名のタイトル
    nMaxFileTitle       As Long             ' lpstrFileTitleのバッファサイズ
    lpstrInitialDir     As String           ' 初期フォルダ名
    lpstrTitle          As String           ' ダイアログボックスのタイトル名
    flags               As Long             ' Flagsの値
    nFileOffset         As Integer          ' lpstrFileの最後の \までのオフセット値
    nFileExtension      As Integer          ' 拡張子までのオフセット値
    lpstrDefExt         As String           ' ファイル名の入力時、拡張子が省略された時の拡張子
    lCustrData          As Long             ' OSがlpfnHookで指定されたフック関数に渡すアプリケーション定義のデータ
    lpfnHook            As Long             ' ダイアログに送られるメッセージを処理するフック関数のポインタ
    lpTemplateName      As String
End Type

'------------------------------------------------------------------------------
'  ファイル開くダイアログ(宣言)
'------------------------------------------------------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
        (pOpenfilename As OPENFILENAME) As Long


    Dim l_ret             As Long           ' 戻り値
    Dim st_path           As String         ' デスクトップパス
    Dim o_comdlg          As OPENFILENAME   ' コモンダイアログ構造体

    ' エラー設定を無効にする
    On Error GoTo 0
    ' 構造体の長さを設定
    o_comdlg.lStructSize = Len(o_comdlg)
    ' 呼び出し元フォームのウインドウハンドルを設定
    o_comdlg.hwndOwner = Form1.hWnd
    ' モジュールのインスタンスハンドルを設定
    o_comdlg.hInstance = App.hInstance
    ' フィルタ文字列を設定
    o_comdlg.lpstrFilter = ""
    ' lpstrCustomFilterのバッファサイズを設定
    o_comdlg.nMaxCustrFilter = 0
    ' フィルタコンボボックスの初期インデックス値を設定
    o_comdlg.nFilterIndex = 0
    ' 選択されたファイル名のフルパスを設定
    o_comdlg.lpstrFile = String$(MAX_PATH, Chr$(0))
    ' lpstrFileのバッファサイズを設定
    o_comdlg.nMaxFile = MAX_PATH
    ' 選択されたファイル名のタイトルを設定
    o_comdlg.lpstrFileTitle = String$(MAX_PATH, Chr$(0))
    ' lpstrFileTitleのバッファサイズを設定
    o_comdlg.nMaxFileTitle = MAX_PATH + 1
    ' 初期フォルダ名を設定
    o_comdlg.lpstrInitialDir = "C:\" & String$(MAX_PATH - 3, Chr$(0))
    ' ダイアログボックスのタイトル名を設定
    o_comdlg.lpstrTitle = "ファイルを開く"
    ' Flagsの値を設定
    o_comdlg.flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
    ' ファイル名の入力時、拡張子が省略された時の拡張子を設定
    o_comdlg.lpstrDefExt = ""
    ' ダイアログを表示する
    l_ret = GetOpenFileName(o_comdlg)
    ' ファイル選択が確定された場合
    If (l_ret <> 0) Then
        ' 選択ファイルを表示します
        MsgBox o_comdlg.lpstrFile

    End If