2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ExcelVBA】末尾改行を付けたり外したりする

Last updated at Posted at 2019-09-16

概要

ドキュメント用途のExcelファイルでは、1セル内に長文を入力することがよくある。
それが表の形式になっていると、文字の洪水のように見えてしまい視認性が悪い。
また、行の幅をキュッてやる時に行間をダブルクリックするが、
やはりキュッとなりすぎてしまう。
1.png

そこでセルに末尾改行を付ける人も多いと思う。
2.png

これでキュッとしても行間が維持されて見やすくなる。
サンプルがあまり良くないが、内容が詰まっているほど効果が見える。

中には末尾改行を好まない人もいてすべて取り除きたかったり、
今すぐ全体に末尾改行入れてキュッてしたい!という場面があるので、
一連のアクションをマクロ化しておけば便利かと思う。

マクロ

選択範囲に末尾改行を付与する

末尾改行の増殖を防ぐため、
セルの末尾がすでに改行かを判定して行う。

Sub AppendLineBreakAtEnd()
    Dim trg As Range
    
    For Each trg In Selection
        If Len(trg.Value) > 0 Then
            If Right(trg.Value, 1) <> vbLf Then
                trg.Value = trg.Value & vbLf
            End If
        End If
    Next
End Sub

選択範囲に末尾改行を除去する

末尾改行が2つ以上入っている場合があるので、
すべて無くなるまでループさせている。

Sub RemoveLineBreakAtEnd()
    Dim trg As Range
    
    For Each trg In Selection
        If Len(trg.Value) > 0 Then
            Do While Right(trg.Value, 1) = vbLf
                trg.Value = Left(trg.Value, Len(trg.Value) - 1)
            Loop
        End If
    Next
End Sub
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?