右からn文字目の前に改行を入れる
右から数えてn文字目の前に改行を入れます。
対象となるセルを選択した状態でマクロを実行して下さい。
試しに「5」を指定します。
右から数えて5文字目の前に改行が入りました。
複数のセルの特定の位置に改行を入れたいけど、対象となるセルが多すぎて一つ一つ手作業でなんてやってらんないよー!という場面があればきっと役にたつと思います。
左から・・・Verとは別に、右から・・・Verをあえて準備したのは、場合によっては右から数えたほうが都合の良い場面があるからです。左からの文字数が不揃いで、右からの文字数が一定であるような場面です。(例えば下記のように「改行したい文字」の前、つまりすべての対象に右から数えて7文字目の前で改行を入れたい場合)
12345改行したい文字
123改行したい文字
123456改行したい文字
1234改行したい文字
1234567改行したい文字
まぁ、でもそんな場面が無ければ無用の長物です。軽く読み流して下さい。
***************************************
Sub 右からn文字目の前に改行を入れる()
'右から数えてn文字目の前にセル内改行を入れます
Dim myRange As Range
Dim nr As Variant
nr = Application.InputBox(Prompt:="右から何文字目の前に改行を入れますか?", Type:=1)
If TypeName(nr) = "Boolean" Then
Exit Sub
End If
For Each myRange In Selection.SpecialCells(xlCellTypeVisible)
If myRange.Value <> "" And TypeName(myRange.Value) <> "Date" Then 'セルの値が空白,日付の場合は処理をしない
myRange.Value = Application.WorksheetFunction.Replace(myRange.Value, Len(myRange.Value) - nr + 1, 0, vbLf)
End If
Next myRange
End Sub
***************************************
※SubからEnd Subまでをコピーし、標準モジュール等に貼り付けて使用して下さい。なお、マクロで実行した処理は「元に戻す」ことができません。実行前に一旦保存しやり直しのできる状態にしておいて下さい。