エクセルのマクロで改行挿入(Excel2002)
セルの文字列に全角10文字(半角20文字)ごとに Chr(10) で改行を入れたいです。
全角10文字を越えてはダメ。
選択したセルに動作する物です。
- - - - -
Sub 半角20改行_Click()
Dim Tmp As Range, Cha As Long, Num As Long
Dim STR As String, MdTmp As Variant, flg As Boolean
For Each Tmp In Selection
For Cha = 1 To Len(Tmp.Value)
MdTmp = Mid(Tmp.Value, Cha, 1)
If MdTmp = vbLf Then
If flg = False Then STR = STR & MdTmp
Num = 0
GoTo NextRow
End If
If LenB(StrConv(MdTmp, 128)) = 1 Then
Num = Num + 1
Else
Num = Num + 2
End If
' この↓(20)で改行文字数変更
If Num >= 20 - 1 Then
STR = STR & MdTmp & vbLf
flg = True
Num = 0
Else
STR = STR & MdTmp
flg = False
End If
NextRow:
Next
Tmp.Value = STR
STR = ""
Num = 0
Next
For Each Tmp In Selection
If Right(Tmp, 1) = Chr(10) Then
Tmp.Value = LeftB(Tmp, LenB(Tmp) - 2)
End If
Next
End Sub
- - - - - -
これだと
あいうえおかきくけこさしすせそ
↓↓
あいうえおかきくけこ ←全角10改行
さしすせそ <成功!>
あいうえお(かきくけこさし)すせそ
↓↓
あいうえお(かきくけ ←全角9.5改行
こさし)すせそ <成功!>
あいうえお(かきくけ)こさしすせそ
↓↓
あいうえお(かきくけ ←全角9.5改行
)こさしすせそ <失敗!!>
こうなってほしい↓。
あいうえお(かきくけ) ←全角10改行
こさしすせそ
改行の狭間に全角文字が来た場合は全角9.5文字ごとに改行。
それ以外は全角10文字ごとに改行。
このようにする物を教えてください。
お礼
うまくいきました。 ありがとうございました。m(_ _)m