« ファイルの名前を変更する | トップページ | 列を表す英文字を列番号に変換 »

2010年3月 8日 (月)

VBAでファイルの存在を確認してから開く

VBAでブックを開くときは

Workbooks.Open "ファイルまでのパス"

とします。

例えば、下のコードで
指定したファイルが存在しない場合
エラーになります。

ブックを開くコード:

Sub macro100308a()
'ファイルを開く
    Workbooks.Open "C:\abc.xls"
End Sub

エラーのダイアログはこうです。
Vba20100308a

エラーが起こってから処理するよりも
エラーが起こらないようにするのがいいプログラムのようなので
エラーをできるだけ起こさないようにしたいと思います。

上記のエラーを起こさないように
指定したファイルが存在しているか確かめてから
ブックを開くようにします。

次のコードは、
MyPathで開きたいファイルがあるフォルダまでのパスを、
MyFileで開きたいファイルを指定します。

ファイルの存在を確かめるのに、FileSearchを使います。
条件分岐Ifを使って、
存在していたら開く
存在していなかったら開かないようにします。

コードはこちら

存在を確かめてブックを開くコード:

Sub macro100308b()
'存在を確認してからファイルを開く

    Dim MyPath, MyFile As String
    Dim i As Integer
    '任意のフォルダまでのパス
    MyPath = "C:\"
    '任意のファイル名
    MyFile = "abc.xls"
       
        With Application.FileSearch
            .LookIn = MyPath
            .Filename = MyFile
            If .Execute() = 1 Then
            'ブックが存在する場合
                Workbooks.Open MyFile
            Else
            'ブックが存在しない場合
                MsgBox "指定したファイルがありません。"
            End If
        End With

End Sub

条件分岐Ifの中の処理を変えれば
違った処理にも応用できます。

|

« ファイルの名前を変更する | トップページ | 列を表す英文字を列番号に変換 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: VBAでファイルの存在を確認してから開く:

« ファイルの名前を変更する | トップページ | 列を表す英文字を列番号に変換 »