- ベストアンサー
エクセルマクロでエラー処理時にセルに色をつける方法
- エクセルマクロでエラー処理時にセルに色をつける方法について説明します。
- 具体的には、旧ファイルや新ファイルが存在しない場合のエラーに対する処理方法について解説します。
- エラーが発生した場合、処理を途中で止めずにエラーの発生したセルに色をつけ、次の処理に進む方法を紹介します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
暇なのでまたまた登場、myRangeです。(^^;;; 条件3(旧ファイル無し、新ファイル有りの同時発生)も当然チェックするんですよね? で、あれば、On Error では無理かと、、、、 (理由)On Errorでは同時に複数のエラーはチェックできないから。、 それらを考慮しての回答1でした。 以上です。
その他の回答 (3)
- hige_082
- ベストアンサー率50% (379/747)
こんな感じでは? Sub test() Dim i As Long On Error GoTo ErrorHandler For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row Name Range("A1").Value & Cells(i, 1).Value As Range("A1").Value & Cells(i, 2).Value Next i Exit Sub ErrorHandler: Select Case Err.Number Case 53 Cells(i, 1).Interior.ColorIndex = 38 Case 58 Cells(i, 2).Interior.ColorIndex = 38 End Select MsgBox Err.Description Resume Next End Sub 以上、参考まで
- myRange
- ベストアンサー率71% (339/472)
回答1、myRangeです。 色付け条件の3番目の文言にケアレスミスあり >旧、新ファイルともにない > A、B列に色 を 旧ファイル無し、新ファイル有り > A,B列に色 に訂正します。 コードは訂正なしです。 以上です。
- myRange
- ベストアンサー率71% (339/472)
色を付けるのは以下の3通りありますね。 旧ファイル無し ーーーーー> A列に色 新ファイル有り ーーーーー> B列に色 旧、新ファイルともにない > A、B列に色 '----------------------------- Sub test() Dim i As Long Dim FileA As String Dim FileB As String i = 3 Do Until Cells(i, 1).Value = "" FileA = Range("A1").Value & Cells(i, 1).Value FileB = Range("A1").Value & Cells(i, 2).Value If Dir(FileA) = "" Then Cells(i, 1).Interior.ColorIndex = 3 If Dir(FileB) <> "" Then Cells(i, 2).Interior.ColorIndex = 6 If Dir(FileA) <> "" And Dir(FileB) = "" Then Name FileA As FileB End If i = i + 1 Loop End Sub '----------------------------------------- Dir関数でフィルがあるかどうか調べることができます。 この関数は、フィルイがあったら、そのファイル名を ファイルが無かったら、長さ0の文字列("")を返します。 詳しくはヘルプを参照のこと。 また、今回のような場合はエラーでメッセージを出しても意味がないので省略。 以上です。
お礼
すばやい回答で助かりました! まだまだ勉強させていただきます。 ありがとうございました。