見出し画像

3-独自のエラーメッセージを表示させる(エクセルマクロ)

自分の言葉をエラーメッセージに載せる!

皆さんこんにちは。
マクロを作って使っていると必ずエラーでマクロが止まってしまうことがあります。そして、そのエラーメッセージ読んでも意味がわからない場合がありますよね。その時のためにエラーメッセージはわかりやすく自分の言葉で表示させるようにしましょう!

◆エラーが発生するかもしれない個所を想定してみる
サンプル資料として「1-ファイルを開く(エクセルマクロ)」で作成したマクロを使います。実行ボタンを押したときにエラーで止まるとしたら、どんな理由が考えられますでしょうか。
次のVBAコードはファイルを開くマクロです。その下の図はマクロが登録されているボタンがあるシートです。

画像1

画像2

★内容があいまいな方は「1-ファイルを開く(エクセルマクロ)」で確認してくださいね。

◆マクロの解説
1行目:変数「mypath」にこのマクロファイルが置かれているフォルダのパスを入れています。
2行目:変数「myfile」にセルC4に入力されているファイル名をいれています。
3行目:「mypath」と「myfile」をつなげてフルパスにして、それを開いています。

★想定されるエラーは大体、手入力の個所です。
ということはセルC4に入力したファイル名が間違っていたり、フォルダの中に存在しなかった場合にエラーの出現が想定されます。

◆書きたいコードの内容

ファイルの存在を確認して、存在していればファイルを開き、なければメッセージを表示する。

◆エラーに対応するコードを書く!

画像4

◆解説
追加したコードは赤カッコ内で「If」から「End If」までのIf文です。
(「Else」は初めて出てきましたね。)
その中にファイルを開くコードが入っています。

赤カッコ内
①If Dir(mypath & "\" & myfile) <> "" Then
  ➡もしファイルが無くはないなら
②  (ファイルを開くコード)
Else(無いなら)
  (エラーメッセージ)
End If

◆コードを読み込む順番
★ファイルが存在するとき ➡ ①②⑤
★ファイルが存在しないとき ➡ ①③④⑤

画像7

★「If」から「End If」までのIf文「Else」がある場合 If の条件に当てはまらなかったらスキップして「Else」からコードをよみ「End If」でIf文を終了します。

Dir関数
ファイルが存在すればそのファイル名を返し、存在しないと("")(長さ0の文字列)を返します。

画像7


画像7


今回はいつもより新しい情報が多かったかもしれません。
使える場面がありましたら使ってみてくださいね。

次回は、、

画像6

赤カッコ内
①If Dir(mypath & "\" & myfile) ="" Then
  ➡もしファイルのフルパスが無いなら

という書き出しでの書き方をご紹介します。
お楽しみに!




この記事が気に入ったらサポートをしてみませんか?