VBATips

全シートの改行を削除する処理をパーツ化する【ExcelVBA】

パーツ化とは

ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。
処理はパーツ単位で分ける事を心掛けましょう。

分かりやすく説明すると、エクセルの「関数」と同様です。
SUM関数であれば セル内に「=SUM(1+2+3)」と記載すれば、セルには「6」と表示されますよね。
値を渡せば正しい値で返ってくる動きです。

このコードをコピペでOK

'■全シートの改行を削除する
Sub call_ReplaceNewLine()

    Dim ws As Worksheet

    '本来Excelの改行はLfですが、Windowsの改行のvbCrlfも念のため削除
    'Windowsではあまり使わないvbCrも同様に削除。
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Replace vbCrLf, ""
        ws.UsedRange.Replace vbLf, ""
        ws.UsedRange.Replace vbCr, ""
    Next ws

End Sub

今開いているブックの全てのシートに対して、Replaceメソッド
「改行」を「””(空文字にして削除)」します。

他システムへCSVをインポートする際、改行は取込エラーになる可能性があります。
その為、CSVに変換する前に改行を削除する場合に使います。

その他

サンプル例は改行を削除しましたが、任意の文字を置換する場合は下記参照してください。
全てのシートの「特定文字」を置換する処理をパーツ化する【エクセルマクロ】

関連記事

コメント

タイトルとURLをコピーしました