|
>実際の処理では、
>セル中の文字列の何文字目から何文字目まで下線が引いてあるか、
>また、一つのセルの中で何箇所下線が引かれているか、
>を取得する必要があるため、
>一文字ずつ判定するしかないかな、と思っています。
このような場合、セル中の文字列が、
1) 下線を含んでない、
2) 全て同じ下線、
3) それ以外(一部含む、異種の下線)
かを調べて、3)の場合のみ、一文字ずつ判定すれば済みます。
示されたコードの For Each の内部は一例として次のように処理できます。
あくまでも一般的にはです。今回の処理に当てはまらないかもしれませんがご参考まで。
For Each rngTarget In targetCells
charUnderLine = rngTarget.Font.Underline
If IsNull(charUnderLine) Then '一文字ずつ判定
Debug.Print "下線は含まれている"
'セル内の文字数の取得
max_i = Len(rngTarget)
For i = 1 To max_i
charUnderLine = rngTarget.Characters(i, 1).Font.Underline
'ステータスバーに処理行数と文字数を表示
Application.StatusBar = rngTarget.Row & "/" & endNum & " 行目の " _
& i & "/" & max_i & "文字目を処理中です"
Next i
ElseIf charUnderLine = xlUnderlineStyleNone Then
Debug.Print "下線は無い"
Else
Debug.Print "全て同じ下線である", charUnderLine
End If
Next
|
|