アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAの初心者です。いろいろと勉強しているのですが、エラーハンドリングについて理解できずに悩んでいます。

On Error GoTo について、インターネットからサンプルコードをコピーして試しているのですが、On Error GoTo が上手くできません。

Sub sample_error01()
Dim i
On Error GoTo ErrLabel
For i = 1 To 40
Worksheets(i).Activate
Next
Exit Sub
ErrLabel:
MsgBox "エラー番号: " & Err.Number & Chr(13) & Err.Description
End Sub

シートの数が40もないので、エラーが発生しますが、以下のプロージャを実行しても、ErrLabel: に遷移せずエラーが発生してしまいます。どうしてでしょう?

A 回答 (2件)

補足です。


●エラー処理対象外のエラーで中断(E)
が選択されている状態がデフォルトだと思いますが、
●エラー発生時に中断(B)
が選択されているとErrLabel: に遷移せずエラーが発生します。

※質問内容に記載のコードをコピペして試してみました。
    • good
    • 0
この回答へのお礼

ご指摘のとおり「エラートラップの設定」によるものでした。教えていただかなければ、なかなか気が付かず解決できなかったと思います!教えていただきありがとうございました!

お礼日時:2021/04/28 02:52

VBA画面で、


ツール → オプション → 全般 → エラー トラップ
の部分はどこにチェックが入っていますか?

あと、どういうエラーが出ていますか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

エラーは
「実行時エラー 9
 インデックスが有効範囲にありません」
と出ます。

エラートラップは、「エラー発生時に中断」にチェックが入っていました。

お礼日時:2021/04/28 02:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています