[[20081217102909]] 『エラー処理について(マクロ)』(CHISA) ページの最後に飛ぶ

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

 

『エラー処理について(マクロ)』(CHISA)

 最近、 On Error Goto 〜 Exit をおぼえたばかりのCHISAです。

 たとえば、オートシェイプ1から10を一箇所に集めるコードがあったとします。

 Sub TEST()
 Dim i As Integer
 For i = 1 To 10
     With ActiveSheet.Shapes("Rectangle " & i)
         .Top = 237
         .Left = 90
         .Width = 12
         End With
       Next i
 End Sub

 オートシェイプ1から10の中で、削除されたりして、ないオートシェイプがあると
 途中で "指定したアイテムが見つかりませんでした" というエラーになります。

 そこで、エラーでもとまらず進んで、一番最後にメッセージボックスで、
 (2と5のオートシェイプがない場合)
 "Rectangle 2がエラーです。
  Rectangle 5がエラーです。"

 と表示させる方法はありますか?

 最近おぼえた On Error Goto 〜 Exit ではダメみたいで↓↓

 教えてください。お願いします。
 (CHISA)


 Sub TEST()
 Dim i As Integer
 On Error Resume next
 For i = 1 To 10
     With ActiveSheet.Shapes("Rectangle " & i)
         .Top = 237
         .Left = 90
         .Width = 12
         End With
     If Err Then
        Msgbox "Rectangle " & i & "がエラーです。"
        Err.Clear
     End if
       Next i
 End Sub
 BJ

 BJさんありがとうございますm(__)m♪
 バッチリできちゃいました。

 ありがとうございました♪
 (CHISA)


 あ、1番最後か・・。
 メッセージ内容は、適当に修正してください。
 BJ

 Dim i As Integer
 Dim st As String
 On Error Resume Next
 For i = 1 To 10
     With ActiveSheet.Shapes("Rectangle " & i)
         .Top = 237
         .Left = 90
         .Width = 12
     End With
     If Err Then
        st = st & vbLf & "Rectangle " & i & "がエラーです。"
        Err.Clear
     End If
 Next i
 If Len(st) > 0 Then
   MsgBox Mid(st, 2), vbExclamation
 End If

 ますますばっちりになっちゃいました♪♪

 BJさんありがとうございますm(__)m
 (CHISA)


コメント返信:

[ 一覧(最新更新順) ]


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