【ExcelVBA】セル内の文字列を指定文字数ごとに改行する

エクセルの操作でセル内の文字列を[Alt]+[Enter]で改行する機会は多いかと思います。

そんな時に大変だと思うことは

・データが大量にあると面倒…
・[Alt]+[Enter]が押しづらい…
・誤ってセルの文字を消してしまった…

ということはないでしょうか。

今回はそんなときに役立つ、一瞬で複数のセル内の文字列を指定文字数ごとに改行する方法をご紹介します!



改行処理をするサンプルデータを準備する

改行処理をするサンプルデータを用意しましょう。

データの内容は何でもよいですが、

今回は9行ごとに改行をしますので、9の倍数文字数となるデータを用意しましょう。

また選択範囲分処理を繰り返しますので、複数のセルにコピーしていきましょう。

できたサンプルデータはこんな感じです。



VBAを実装する

続いてExcelのVisual Basic EditorへVBAを実装します。

Sub 選択範囲のセルの文字列を指定文字数ごとに改行する()

Dim rng As Range
Dim strTemp As String
Dim numWord As Long

'改行文字数を指定します。
numWord = 9

'選択した範囲のデータを取得し、範囲件数分処理を繰り返します。
For Each rng In Selection

    'セル内に改行が含まれるかチェックします。ない場合に改行処理が行われます。
    If Right(rng.Value, 1) <> Chr(10) Then
    
        '文字列を読み取り、指定文字数ごとに改行コードを挿入します。
        For i = 1 To Len(rng.Value) Step numWord
        strTemp = strTemp & Mid(rng.Value, i, numWord) & Chr(10)
        Next
    
    '改行した結果をセルに代入します。
    rng.Value = strTemp
    
    '処理した文字を空にします。
    strTemp = ""
    
    End If

Next rng

End Sub

実装手順は以下の通りです。

Excel側にVBAを実装します。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。



VBAを実行する

では早速VBAの実行をしてみましょう。

①改行をしたいセルを範囲選択します。

②「開発」タブの「VBA」をクリックし

選択範囲のセルの文字列を指定文字数ごとに改行する」を選択し、

実行」をクリックします。

複数のセル内の文字列が9文字づつ改行されましたね!



VBAの説明

VBAの内容を説明します。

こちらで改行文字数を指定します。
numWord = 9
例えば18文字づつ改行したい場合は18を指定します。
numWord = 18

18文字指定の処理結果です。

Selectionで選択した範囲分のデータを取得し、For Eachで範囲件数分処理を繰り返します。
For Each rng In Selection

セル内に改行が含まれるかチェックします。ない場合に改行処理が行われます。
なお、Chr(10)はセルの中の改行のキャラクターセットになります。
If Right(rng.Value, 1) <> Chr(10) Then

文字列を読み取り、指定文字数ごとに改行コードを挿入します。
For i = 1 To Len(rng.Value) Step numWord
strTemp = strTemp & Mid(rng.Value, i, numWord) & Chr(10)
Next

改行した結果をセルに代入します。
rng.Value = strTemp

処理した文字を空にします。
ここを空にしないと、前処理の結果が加えられてしまうことになります。
strTemp = “”



さいごに

いかがでしょうか。

今回のVBAで[Alt]+[Enter]が自動で付与されますので、

大量データの繰り返し作業やミスが許されないセルの改行対応などで

ぜひ活用いただければと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です