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

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

'#
'#ファイルチェック関数
'#
'#引数1:ファイルパス(フルパス)
'#
'#返り値が0の時:正常終了
'#返り値が1の時:エラー

Function FileCheck(FilePath As String) As Integer
    'エラー処理方法を記載
    On Error Resume Next
    
    'ファイルの存在判定
    If Dir(FilePath) = "" Then
        MsgBox "存在しないファイルがあります"
        'ファイルが存在しない際のエラー値
        FileCheck = 1
        '関数脱出
        Exit Function
    End If

    'ブックをファイルの追記モードとして開く
    Open FilePath For Append As #1
    'ファイルを閉じる
    Close #1
    
    'エラーが発生していたら
    If Err.Number > 0 Then
        MsgBox "すでに対象ファイルが開かれています"
        'ブックが開いている時のエラー値
        FileCheck = 1
    Else
        '正常処理の際の返り値
        FileCheck = 0
    End If
End Function

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

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

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

使用例

Option Explicit

Sub ファイルテスト()
Dim FilePath As String
Dim val As Integer

    FilePath = "C:\Users\test\Book1.xlsx"
    
    val = FileCheck(FilePath)
    
    MsgBox (val)

End Sub

ブログ主が運営しているゲームです。
こちらよりどうぞ

コメント

  1. ryo より:

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

  2. 山羊丸 より:

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

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

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