HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > [ファイルを開く]ダイアログボックスでただちに開く(FindFileメソッド)

[ファイルを開く]ダイアログボックスでただちに開く(FindFileメソッド)|Excel VBA

ファイル操作関連のテクニック

[ファイルを開く]ダイアログボックスでただちに開く(FindFileメソッド)

(Excel 2000/2002/2003/2007/2010)

[ファイルを開く]ダイアログボックスを表示するには、いくつかの方法があります。
よく使われるのは、ApplicatipnオブジェクトのGetOpenFilenameメソッドです。
GetOpenFilenameメソッドは、ユーザーが選択したファイルのパスを返しますが、そのブックを開く処理は自分で書かなければなりません。
逆に言えば、選択したファイルのパスを返すだけなので、プログラマにとっての自由度は高いと言えるでしょう。

ダイアログボックスで選択したブックをExcelで開くだけなら、もっと簡単な方法があります。
ApplicationオブジェクトのFindFileメソッドです。

Sub Sample()
    Dim ret As Boolean
    
    On Error Resume Next
    ret = Application.FindFile
    On Error GoTo 0
    
    If Not ret Then
        MsgBox "キャンセルされました"
    End If
End Sub

FindFileメソッドは、GetOpenFilenameメソッドと同じように[ファイルを開く]ダイアログボックスを開きますが、[開く]ボタンをクリックすると、ただちに選択したファイルを開きます。
[キャンセル]ボタンがクリックされたときは何もしないので、そのための処理を記述する必要はありません。

ただし、テキストファイルを選択するとてテキストファイルウィザードが起動します。ここで[キャンセル]ボタンを選択すると実行時エラーが発生するので、On Error ステートメントでエラを回避しています。

ちなみに、選択したファイルが正常に開かれると、FindFileメソッドはTrueを返し、[キャンセル]ボタンがクリックされるとFalseを返します。
また、FindFileメソッドで表示されるダイアログボックスでは、標準で複数のファイルを選択できます。