VBAの勉強を始めてみた

タイトルの通りVBAの勉強を始めました。効率化と暇つぶしを兼ねています。VBA以外の話題もあるよ(笑)

左からn文字目の後ろに改行を入れる

左から数えてn文字目の後ろに改行を入れます。
対象となるセルを選択した状態でマクロを実行して下さい。

 

f:id:kouten0430:20170809151310j:plain

試しに「5」を指定してみます。

 

f:id:kouten0430:20170809151402j:plain

左から数えて5文字目の後ろに改行が入りました。

 

複数のセルの特定の位置に改行を入れたいけど、対象となるセルが多すぎて一つ一つ手作業でなんてやってらんないよー!という場面があればきっと役にたつと思います。
そういう場面がなければ無用の長物です。さらりと読み流して下さい。

 

***************************************

Sub 左からn文字目の後ろに改行を入れる()
    '左から数えてn文字目の後ろにセル内改行を入れます
    Dim myRange As Range
    Dim ns As Variant
   
    ns = Application.InputBox(Prompt:="左から何文字目の後ろに改行を入れますか?", Type:=1)
        If TypeName(ns) = "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, ns + 1, 0, vbLf)
        End If
    Next myRange
   
End Sub

***************************************

 ※SubからEnd Subまでをコピーし、標準モジュール等に貼り付けて使用して下さい。なお、マクロで実行した処理は「元に戻す」ことができません。実行前に一旦保存し

やり直しのできる状態にしておいて下さい。