お手伝いでしている仕事がらみの作業用に、何年かかけて、VBAのプロシャージャを作成しました。おかげ様で、短い時間でその処理ができるようになりました。
ただ、時々でるエラーを、その都度修正したりしながら、使ってきました。自分で作成したプロシャージャなので、なぜエラーが起こったのか、ちょっと流れを見ればわかるのですが、なるべく直さなくてもいいように、作り直したいなと思ってました。
やっていることは至極簡単なことですが、手作業でやると結構な時間とられるので、どうしても、プロシャージャが必要でした。継ぎ足し継ぎ足ししてきたので、結構な分量のプロシャージャになってしまってますので、全部作り直すことは、なかなかできないのですが、ある作業の一部分だけでも、考えられるエラーについての対処を十分にできるようにしたいなと、手直しをし始めました。
今回、作業の対象にしたので、他のエクセルブックを選択して開き、そのブックのシートを選択する、という部分のプロシャージャです。今日、一日、かかって、ほぼ、できたので、備忘録がてら、記載します。
エラー処理1・・・・存在しないファイルを開こうとする。
このエラーの回避は、GetOpenFilename を使って、それそれのディレクトリーを開いて、これから開こ
うとするファイルを選択して開くということで、回避しました。ただこの画面で、キャンセルを押してし
まうと、「ファイルが選択されてません。」のエラーとなりプロシャージャが中断してしまい、fPath に
False がセットされますので、IF 文でFunction を抜け出すことで、回避しました。
‘====読み込みフルパスファイル名の取得====
Dim fPath As Variant
Dim fType, prompt As String
fTyp = “Excelファイル(*.xlsm),*.xlsm,Excelファイル(*.xlsx),*.xlsx,Excelファイル(*.xls),*.xls”
prompt = “Excelファイルを選択してください”
fPath = Application.GetOpenFilename(fTyp, , prompt)
If fPath = False Then
MsgBox “ファイルが選択されていません。”
Exit Function
End If