大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、無駄な改行コードを削除する方法について、ご紹介します。改行コードの削除は、ReplaceとCleanでできます。Replaceの方が応用が利くので、覚えておくと便利です。2個以上の改行などの無駄な改行を削除するには、Replaceをループさせるとできます。

はじめに

この記事では、無駄な改行を削除する方法について、ご紹介します。

改行を削除する方法は、2種類あって、「Replace」と「Clean」があります。

応用が利くので、「Replace」を覚えておくと便利です。

無駄な改行を削除するには、Replaceをループして使います。

無駄な改行を削除できれば、値をきれいに整えることができるので、実務で使えます。

この記事で紹介すること

  • 無駄な改行を削除する方法

目次から見たい項目へ移動すると便利ですよ。

目次

VBAですべての改行コードを削除

VBAで、改行コードを削除する方法について、ご紹介します。

改行コードを削除する方法としては、2種類あって、「Replace」と「Clean」です。

応用ができるので、「Replace」の方が便利です。

では、それぞれの方法で、改行コードを削除してみます。

Replaceを使う

「Replace」を使って、改行コードを削除してみます。

「Replace」は、文字列を置換するVBA関数です。

改行コードを削除なので、改行コード「vbLf」を「空白""」に置換することで、改行コードを削除できます。

VBAコードはこんな感じになります。

Sub TEST1()
    
    'セルの値を取得
    a = ActiveSheet.Cells(1, 1)
    
    '改行コードvbLfを、空白""に変換
    b = Replace(a, vbLf, "")
    
    'セルに入力
    ActiveSheet.Cells(1, 1) = b
    
End Sub

セル内で改行をした値を用意しました。

セル内で改行

セル内で改行をした値

では、VBAコードを実行してみます。

Replaceで改行を削除

Replaceで改行コードを削除した結果

すべての改行を削除できました。

Cleanを使う

つづいて、WorksheetFunctionで「Clean」を使って、改行コードを削除してみます。

「Clean」は、セルに表示されない文字コードを削除する関数です。

「Clean」で改行コードを削除するVBAコードはこちらです。

Sub TEST2()
    
    'セルの値を取得
    a = ActiveSheet.Cells(1, 1)
    
    '改行やタブなどの、表示されない文字コードを削除
    b = WorksheetFunction.Clean(a)
    
    'セルに入力
    ActiveSheet.Cells(1, 1) = b
    
End Sub

セル内で改行した値を用意しました。

セル内で改行

セル内で改行した値を用意

では、VBAコードを実行します。

Cleanで改行を削除

Cleanで改行コードを削除した結果

改行コードをすべて削除できました。

すべての改行コードを削除するのであれば、意外と簡単です。

次に説明する、無駄な改行コードを削除する場合は、Replaceを使う必要があります。

VBAで無駄な改行コードを削除

VBAで無駄な改行コードを削除する方法について、ご紹介します。

無駄な改行コードを削除する

改行を削除する際には、すべての改行を削除するのではなく、2個以上の改行や、最後の改行を削除したいという場合があります。

例えば次のような改行です。

2個以上の改行や最後に改行がある

2個以上の改行や最後に改行されているセル

2個以上の改行があって、最後に改行されているセルです。

これを次のように無駄な改行を削除します。

無駄な改行を削除

無駄な改行を削除した結果

こんな感じで無駄な改行を削除します。

無駄な改行を削除するVBAコードについて、紹介していきます。

2個以上の改行コードを1個にする

2個以上の改行コードを削除するVBAコードは、次のようになります。

Sub TEST3()
    
    'セルの値を取得
    a = ActiveSheet.Cells(1, 1)
    
    '改行が2個連続している場合ループ
    Do While InStr(a, vbLf & vbLf) > 0
        '2個の改行を、1個の改行に置換
        a = Replace(a, vbLf & vbLf, vbLf)
    Loop
    
    'セルに値を入力
    ActiveSheet.Cells(1, 1) = a
    
End Sub

ポイントは、「2個の改行を、1個の改行に置換する」をループすることです。

2個以上の改行をしたセルを用意しました。

2個以上の改行

2個以上の改行をしたセルを用意

VBAコードを実行します。

Replaceで2個以上の改行を削除

Replaceで2個以上の改行を削除した結果

2個以上の改行を削除できました。

最後の改行コードを削除

次は、最後に改行がされている場合に、最後の改行を削除する方法です。

VBAコードは、次のようになります。

Sub TEST4()
    
    'セルの値を取得
    a = ActiveSheet.Cells(1, 1)
    
    '最後の文字が改行の場合にループ
    Do While Right(a, 1) = vbLf
        '最後の1文字を削除
        a = Left(a, Len(a) - 1)
    Loop
    
    'セルに入力
    ActiveSheet.Cells(1, 1) = a
    
End Sub

ポイントは、「最後の改行を、空白""に置換する」をループすることです。

最後に改行されているセルを用意しました。

最後に改行がある

最後に改行されているセルを用意

では、VBAコードを実行します。

最後の改行を削除

Replaceで最後の改行を削除した結果

最後の改行を削除できました。

2個以上の改行コードと最後の改行コードを削除

2個以上の改行と、最後の改行を削除する方法です。

やり方は、シンプルに、先ほどの2つのVBAコードを組み合わせます。

Sub TEST5()
    
    'セルの値を取得
    a = ActiveSheet.Cells(1, 1)
    
    '改行が2個連続している場合にループ
    Do While InStr(a, vbLf & vbLf) > 0
        '2個の改行を、1個の改行に置換
        a = Replace(a, vbLf & vbLf, vbLf)
    Loop
    
    '最後の文字が、改行の場合ループ
    Do While Right(a, 1) = vbLf
        '最後の文字を消す
        a = Left(a, Len(a) - 1)
    Loop
    
    'セルに入力
    ActiveSheet.Cells(1, 1) = a
    
End Sub

手順としては、

  • ①「2個の改行を、1個の改行に置換する」をループする
  • ②「最後の改行を、空白""に置換する」をループする

2個以上の改行と、最後に改行があるセルを用意しました。

2個以上の改行と最後に改行がある

2個以上の改行と、最後に改行があるセルを用意

では、VBAコードを実行してみます。

無駄な改行を削除

Replaceで2個以上の改行と、最後の改行を削除した結果

無駄な改行を削除できました。

セル内の値がきれいに整いました。

おわりに

この記事では、無駄な改行を削除する方法について、ご紹介しました。

改行を削除する方法は、2種類あって、「Replace」と「Clean」があります。

応用が利くので、「Replace」を覚えておくと便利です。

無駄な改行を削除するには、Replaceをループして、無駄な改行を削除できます。

セル内の改行を削除して、値をきれいに整えることができるので、実務で使えるものです。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す