過去ログ

                                Page     780
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼On Errorの処理  yoppy 03/2/22(土) 17:46
   ┗Re:On Errorの処理  Jカーター 03/2/22(土) 18:27
      ┗Re:On Errorの処理  yoppy 03/2/22(土) 18:41

 ───────────────────────────────────────
 ■題名 : On Errorの処理
 ■名前 : yoppy
 ■日付 : 03/2/22(土) 17:46
 -------------------------------------------------------------------------
   シートの文字や数式を残し、値だけをクリアしたいと思います。
値がないときのエラー回避に下記のようにしました。
そしたら文字や数式まで消えてしまいました。
どのように処理したらよろしいのでしょうか?
どなたかおしえてください!
  
  Range("A1:Z100").Select
  On Error Resume Next
  Selection.SpecialCells(xlCellTypeConstants, 1).Select
  Selction.ClearContents
  On Error GoTo 0
 ───────────────────────────────────────  ■題名 : Re:On Errorの処理  ■名前 : Jカーター  ■日付 : 03/2/22(土) 18:27  -------------------------------------------------------------------------
   こんばんは。
on error resume next
は、エラーになってもとばして処理してくれますが
エラーにならない行は処理されます。
ですからspecialcellsの行でエラーになっても
Selection.ClearContentsは実行されていまいます。
以下のようにエラーになったかを取得して
分岐して実行してみてはどうでしょうか?

Sub test()
  Range("A1:Z100").Select
  On Error Resume Next
  Selection.SpecialCells(xlCellTypeConstants, 1).Select
  If Err.Number = 0 Then
    Selction.ClearContents
  End If
  On Error GoTo 0
End Sub
ちなみに上記コードは未テストですので
はずしていたらすいません。
 ───────────────────────────────────────  ■題名 : Re:On Errorの処理  ■名前 : yoppy  ■日付 : 03/2/22(土) 18:41  -------------------------------------------------------------------------
   ありがとうございます。
早速テストしてみたところ、大丈夫でした。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 780