|
はじめまして。
たとえば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です。
|
|