Excel

【Excel】VBAマクロでセル内改行を削除・置換・分割(検索・検知で判定、Replace関数, Split関数, For Each文)する方法

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを利用して、セル内の改行を操作する方法について解説していきます。

ポイントとしては、Replace関数とSplit関数、そしてFor Each文を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでセル内改行コードを一括削除する方法【シート全体】【Replace関数】

それではまず、セル内改行コードを一括削除する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KaigyoSakujo()
    Dim hairetsu As Range
    Dim hensuu As Range

    ' アクティブシート全体を対象にする
    Set hairetsu = ThisWorkbook.ActiveSheet.UsedRange

    ' 各セルの改行を削除
    For Each hensuu In hairetsu
        hensuu.Value = Replace(hensuu.Value, Chr(10), "")
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKaigyoSakujo関数を実行します。

このコードは、アクティブシート内の全てのセルを対象に、セル内の改行を一括で削除するものです。

Replace関数を使用して、Chr(10)で示される改行コードを空文字に置換しています。

VBAマクロでセル内改行コードを一括置換する方法【シート全体】【Replace関数】

続いては、セル内改行コードを一括置換する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KaigyoChikan()
    Dim hairetsu As Range
    Dim hensuu As Range

    ' アクティブシート全体を対象にする
    Set hairetsu = ThisWorkbook.ActiveSheet.UsedRange

    ' 各セルの改行をスペースに置換
    For Each hensuu In hairetsu
        hensuu.Value = Replace(hensuu.Value, Chr(10), " ")
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKaigyoChikan関数を実行します。

このコードは、アクティブシート内の全てのセルを対象に、セル内の改行を一括でスペースに置換するものです。

VBAマクロでセル内改行を一括分割する方法【シート全体、行方向に分ける】【Split関数, For Each文】

続いては、セル内改行を一括分割する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KaigyoBunkatsu()
    Dim hairetsu As Range
    Dim hensuu As Range
    Dim mojiretsu() As String
    Dim i As Integer

    ' アクティブシート全体を対象にする
    Set hairetsu = ThisWorkbook.ActiveSheet.UsedRange

    For Each hensuu In hairetsu
        ' 改行で文字列を分割
        mojiretsu = Split(hensuu.Value, Chr(10))

        ' 分割した文字列をセルに入力
        For i = LBound(mojiretsu) To UBound(mojiretsu)
            hensuu.Offset(i, 0).Value = mojiretsu(i)
        Next i
    Next hensuu
End Sub

コードのAlt+F8を押し、マクロ選択画面でKaigyoBunkatsu関数を実行します。

このコードは、アクティブシート内の全てのセルを対象に、セル内の改行で文字列を一括で分割し、行方向にデータを配置しています。

まとめ

以上が、VBAマクロを使用してセル内の改行を操作する基本的な方法です。

これらの基本をマスターすれば、さまざまな応用が効くようになりますので、是非とも練習してみてください。