今回はVBAでファイルチェック関数を作成したのでアップしてみる。
以下それである。
1 | '# |
2 | '#ファイルチェック関数 |
3 | '# |
4 | '#引数1:ファイルパス(フルパス) |
5 | '# |
6 | '#返り値が0の時:正常終了 |
7 | '#返り値が1の時:エラー |
8 |
9 | Function 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 |
36 | End Function |
今回の関数は途中でぶつ切りにすることができない。
ファイルの存在判定と、ファイルが開いているかを同時に判定しているが、
下のファイルが開く関数のみ取り出すと、
ファイルが存在しない場合、空ファイルが生成されてしまう。
エラーなら1を、正常終了ならば0を返す。
これもVBA実行時に結構な頻度で使用する。
特にファイルが開かれた編集モードだとエラーを返してくれるのでありがたい。
一応使用は自己責任なんでよろしくお願いします。
使用例
1 | Option Explicit |
2 |
3 | Sub ファイルテスト() |
4 | Dim FilePath As String |
5 | Dim val As Integer |
6 |
7 | FilePath = "C:\Users\test\Book1.xlsx" |
8 | |
9 | val = FileCheck(FilePath) |
10 | |
11 | MsgBox (val) |
12 |
13 | End Sub |
コメント
今更ですが、あけましておめでとうございます。
お体の調子はどうでしょうか?
あけましておめでとうございます。
こちらは1月末より引越しを控えていて大騒ぎです
体調は徐々に回復傾向にあります。
(MFの復活はないですけど^^;)
今はPythonで機械学習を勉強中です。