| 
    
     |  | はじめまして。 
 たとえばA5からP50の表の各セルにさまざまなデータが入っていて、中には、セル内の一部の文字に取り消し線が引かれているものがあります。
 
 例)「ああああいいいいうううう」 の、「いいいい」だけ取り消し線が引かれている
 
 *取り消し線がまったく引かれていないセルやブランクのセルもあります。
 この、「取り消し線が引かれている文字」だけ削除したいと思っています。
 
 例)では「いいいい」を削除して「ああああうううう」にしたいです。
 
 そこで、以下のように書いてみました。
 
 Sub 取り消し文字列削除()
 Dim c As Range
 Dim i As Integer
 ActiveSheet.Range("A5").CurrentRegion.Select
 With Selection
 For Each c In Selection
 Do
 For i = 1 To Len(c.Value)
 If c.Characters(Start:=i, Length:=1). _
 Font.Strikethrough = True Then
 c.Characters(Start:=i, Length:=1).Delete
 End If
 Next
 Loop Until c.Value = "" Or c.Font.Strikethrough = False
 Next
 End With
 MsgBox ("取消されている文字列の削除完了")
 End Sub
 
 総文字数が100文字ぐらいまでのセルだとうまく取り消し線の引かれている文字だけ削除するのですが、文字数が多いセルで止まってしまいます。
 
 どなたかお知恵を拝借できないでしょうか?
 よろしくお願いします。
 
 Excelのバージョンは2003です。
 
 |  |