ray88’s diary

お仕事で困ったとき用の自分用の覚書

VBA エラー処理

■開発時にどのようなエラーが起きて対処しなければならなかったか覚書

①ファイル、フォルダの存在確認
    Excel VBA フォルダパスの有無を確認する - ray88’s diary
    Excel VBA 指定されたファイルパスが存在するか確認する - ray88’s diary

②ファイルが既に開かれているかどうか確認する
 ファイルが開かれているかチェックはできても、たとえば、各部署ごとにフォルダ
 が分かれていて、各同じファイル名のファイルが格納されている場合
経理部フォルダの集計.xlsx, 営業部フォルダの集計.xlsx)
 など、各部署ごとにフォルダ名は異なるが格納されているファイル名が全て集.xlsx
 など同一の場合、ファイルが既に開かれているかどうかチェック後に各ブックを
 開いて処理する際、既に同じ名前のファイルが開かれていると、同名ファイルは
 開けない為エラーとなることに注意する。その為、要件定義の段階で同名ファイルが
 存在しないようにする、もしくは開かれているブックを全て落とすような処理を
 加えてもよいか確認が必要。
 ファイルが既に開かれているかどうか調べ
 ファイル名が共通である場合は、プログラムの冒頭で以下方法で同名ファイルが
 開かれているか事前チェックし、開かれていた場合はExitSubで終了させる方法もある
 VBA 特定の名前のブックが開かれているか確認する - ray88’s diary
③ファイルを開く際のリンクの更新確認を無視する
    ExcelVBA リンクの更新を無視してブックを開く - ray88’s diary
④ファイルのフィルター解除
 ExcelVBA フィルター解除する(フィルターがかかっていたら) - ray88’s diary

⑤セル結合がある場合の対処
 セル結合を含むシートをコピペするときは書式の貼り付けと値の貼り付けを別々に行うことで貼り付け可能となる
⑥大文字、小文字、全角、半角、スペース有無等の表記の揺れ
⑦文字列が入るセルに数値、日付型の入るせるに文字列が入る等、通常取得する型
 と別の型がはいる可能性。取得した値の型確認(IsDate関数等で確認)
⑧見出し行のセルがファイルによって結合されている場合と結合されてない場合が
 ある。(セル結合の確認)(MargeCells関数等で確認)