4-9 マクロがエラーになった時の対処

自分で作ったマクロでは、よくエラーが起きます。自作マクロは、このエラーを回避するのにかなりのエネルギーを使うことになります。でも、解決出来た時の嬉しさは格別です。
今回は、エラーが起きた時の対処方法を書いておきます。
以下に、エラーが起きる「エラーテスト」と言う名前のマクロを作っておきました。見かけは「日付抽出」とほとんど変わりませんが実行するとエラーになります。

--ここから


Sub エラーテスト()
日付1$ = InputBox("日付範囲の先頭の年月日を入力してください" + vbCrLf + "yy
yy/mm/dd", "日付範囲記入")
日付2$ = InputBox("日付範囲の最後の年月日を入力してください" + vbCrLf + "yyyy/mm/dd", "日付範囲記入")

Selection. AutoFilter
Range("A1").Select
Selection.AutoFilter Field:=1
Selection.AutoFilter Field:=1, Criteria1:=">=" & 日付1$, Operator:=xlAnd, _
Criteria2:="<=" & 日付2$
Range("A1").Select
End Sub

--ここまで

この記述を、コピーして「Module1.bas」の再下段に貼り付けます。
編集した「Module1.bas」を保存します。
「Visual Basic Editor」を起動して、組み込まれている「Module1」を解放します。
続けて、編集保存した「Module1.bas」をインポートします。
「Visual Basic Editor」を終了します。
「小遣帳」のメニューバーの「ツール(T)」の「マクロ(M)」から、「エラーテスト」を選択して実行します。

次のようなエラーメッセージが出ます。
「Microsoft Visual Basicの警告メッセージ コンパイル エラー:構文エラー 」「OK」と「ヘルプ」のプッシュボタンがあります。
「ヘルプ」を選択して[Enter]キーを押しますと、エラーの原因が書かれたヘルプが表示されますが、もう少しVBAを勉強してからでないと意味がよく分からないと思います。
「OK」ボタンを押しますと、「Visual Basic Editor」が起動して、エラーになった行が選択されて「エラーテスト」マクロが表示されています。
この状態を「デバッグ」と言います。通常は、この「Visual Basic Editor」のエディタの画面で、間違いを探してマクロを訂正しますが、スクリーンリーダーはこの画面を読みません。
でも、どの行がエラーになっていて、実行が中断されているかは、次の方法で分かります。

1.エラーメッセージの「OK」または「デバッグ」のボタンを選択して[Enter]キーを押します。

2.無音ですが、すぐに[Shift+下カーソル]キーを押して、10行ぐらいを範囲選択します。

3.[Ctrl+C]キーを押して範囲選択した所をコピーします。

4.エラーでマクロが中断されている行を含めて読み上げると思います。読み上げない場合は、スクリーンリーダーの「クリップボード読み上げ」がOFFになっていると思います。

5.読み上げを聞いただけでは、エラーの箇所がよく分からないと思いますので、エディタなどを起動して[Ctrl+V]キーで貼り付けます。

6.エラー箇所はなかなか見つけられないのが普通です。[左右カーソル]キーを使って1文字ずつ読んで、間違いを探します。

7.[Alt+tab]キーで「Visual Basic Editor」の画面に戻ります。

8.[Alt]キーを押して「ファイル(F)」のプルダウンメニューから「終了して Microsoft Excel へ戻る(C)」を選択して[Enter]キーを押します。

9.次のメッセージが出ます。
「Microsoft Visual Basicの警告メッセージ このコマンドを使うとデバッグは中断します。」
「OK」と「キャンセル」と「ヘルプ」のボタンがあります。

10.この「Visual Basic Editor」の画面では、スクリーンリーダーを使ってはエラー箇所の修正が出来ませんので、「OK」を選択して[Enter]キーを押してデバッグを終了します。

11.コピーしたエディタの画面でエラー箇所が分かりましたら、「module1.bas」を起動してその箇所を修正します。

12.修正が終わりましたら、「module1.bas」を保存終了します。

13.「Visual Basic Editor」を再度起動して、現在の「module1]を解放して、訂正した「module1.bas」をインポートします。

14.「ファイル(F)」の「終了して Microsoft Excel へ戻る(C)」を選択して[Enter]キーを押すか、[Alt+F4]キーを押して「小遣帳.xls」に戻ります。

15.マクロ「エラーテスト」を実行します。「日付抽出」マクロと同じ結果になれば修正が出来た事になります。

このように、スクリーンリーダーでマクロのデバッグを行なうのは手間がかかりますが、完成すれば、Excelを大変便利に使えます。
がんばって行なってみて下さい。

「エラーテスト」の間違い箇所は次の所です。

日付1$ = InputBox("日付範囲の先頭の年月を入力してください" + vbCrLf + "yy
yy/mm/dd", "日付範囲記入")

上の行は本来1行で無いとならないのですが、
日付1$ = InputBox("日付範囲の先頭の年月を入力してください" + vbCrLf + "yy
の行末に[改行コード]が、間違って入っていて2行の論理行になっています。
修正方法は、行末にカーソルを移動して[Del]キーを押して[改行コード]を削除して、1行の論理行にします。


前の項目へ 視覚障害者のためのExcel講座へ戻る 次の項目へ