[[20100516202223]] 『エラー回避』(risa) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エラー回避』(risa)

こんばんは

次のSheetが無い時に On Error Resume Nextで、エラー回避していますが

この方法は、正しいのでしょうか?

ActiveSheet.Next.Select

2007


 エラートラップの場所と全体の処理が解らないので正しいかどうか、
判断はしかねますが、部分的なには間違いではありません。
 
この部分における別の方法としては、アクティブシート名を最終シート名と
比較することでエラートラップする方法が考えられます。
 
 If ActiveSheet.Name <> Sheets(Sheets.Count).Name Then
     ActiveSheet.Next.Select
 Else
     MsgBox "このシートが最終シートです"
 End If
 
On Error Resume Nextの位置によっては、他のエラーも表面上には
現れずにスルーしてしまうことがあるので、注意が必要です。
On Error Resume Nextで回避する場合は、あとで対処できるような工夫を。
 
 On Error Resume Next
 ActiveSheet.Next.Select
' このあとで他の処理でエラーが発生した場合も On Error Resume Nextだけでは
' エラーをスルーしてしまう。
' 以下のようなコードを最後に加えて想定していないエラーを拾う。
 Select Case Err.Number
 Case Is = 91
     MsgBox "このシートが最終シートです"
 Case Else
     MsgBox "プログラムの調査が必要なエラーです。エラーナンバー" & Err.Number 
 End Select
 On Error GoTo 0

(みやほりん)(-_∂)b


みやほりんさん

>アクティブシート名を最終シート名と
比較することでエラートラップする方法が考えられます。

この方法で、エラー回避する事にしました。

みやほりんさんのアドバイスで、安易にOn Error を使用しては、

駄目なことがよく解りました。

丁寧な説明有り難うございました。(risa)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.