ファイルの存在と展開判定のExcelVBA関数

今回はVBAでファイルチェック関数を作成したのでアップしてみる。
以下それである。

1'#
2'#ファイルチェック関数
3'#
4'#引数1:ファイルパス(フルパス)
5'#
6'#返り値が0の時:正常終了
7'#返り値が1の時:エラー
8 
9Function FileCheck(FilePath As String) As Integer
10    'エラー処理方法を記載
11    On Error Resume Next
12     
13    'ファイルの存在判定
14    If Dir(FilePath) = "" Then
15        MsgBox "存在しないファイルがあります"
16        'ファイルが存在しない際のエラー値
17        FileCheck = 1
18        '関数脱出
19        Exit Function
20    End If
21 
22    'ブックをファイルの追記モードとして開く
23    Open FilePath For Append As #1
24    'ファイルを閉じる
25    Close #1
26     
27    'エラーが発生していたら
28    If Err.Number > 0 Then
29        MsgBox "すでに対象ファイルが開かれています"
30        'ブックが開いている時のエラー値
31        FileCheck = 1
32    Else
33        '正常処理の際の返り値
34        FileCheck = 0
35    End If
36End Function

今回の関数は途中でぶつ切りにすることができない。
ファイルの存在判定と、ファイルが開いているかを同時に判定しているが、
下のファイルが開く関数のみ取り出すと、
ファイルが存在しない場合、空ファイルが生成されてしまう。

エラーなら1を、正常終了ならば0を返す。
これもVBA実行時に結構な頻度で使用する。
特にファイルが開かれた編集モードだとエラーを返してくれるのでありがたい。

一応使用は自己責任なんでよろしくお願いします。

使用例

1Option Explicit
2 
3Sub ファイルテスト()
4Dim FilePath As String
5Dim val As Integer
6 
7    FilePath = "C:\Users\test\Book1.xlsx"
8     
9    val = FileCheck(FilePath)
10     
11    MsgBox (val)
12 
13End Sub

ブログ主が運営しているゲームです。

 MobileFight

 ジマさんの囲碁入門

コメント

  1. ryo より:

    今更ですが、あけましておめでとうございます。
    お体の調子はどうでしょうか?

  2. 山羊丸 より:

    あけましておめでとうございます。

    こちらは1月末より引越しを控えていて大騒ぎです
    体調は徐々に回復傾向にあります。
    (MFの復活はないですけど^^;)

    今はPythonで機械学習を勉強中です。