エクセルVBA(シート選択のエラー処理)–(1)

お手伝いでしている仕事がらみの作業用に、何年かかけて、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

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA