CHR関数を使い文字列を改行する方法 : Excel VBA

Chr(10)・Chr(13)・vbCrLfを使い、それぞれどのようになるかテストします。

・Chr(10)とは、ラインフィード(略して Lf)のことで、次の行に送ることです。
・Chr(13)とは、キャリッジリターン(略して Cr)のことで、カーソルを文頭に戻すことです。

通常改行するには、上の2つを合わせて「Chr(13) & Chr(10)」のようになりますが、これは「vbCrLf」と同じことです。
ここでは、空白で姓と名が分かれている名前を、上の3種類を使い改行してみます。

空白で分かれている名前から姓だけ取り出すには、Left(名前, InStr(名前, " ") - 1)になります。
名だけ取り出すには、Right(名前, Len(名前) - InStr(名前, " "))になります。


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

Excel実行画面

下のシートには、空白で区切られた名前が入力されています。
この名前を姓で改行します。
空白で区切られた名前


Excel VBA実行コード

下記のコードを入力します。
Do~Loopで入力されているセルを調べています。
4列目には、Chr(10)を使った結果を表示します。
5列目には、Chr(13)を使った結果を表示します。
6列目には、vbCrLfを使った結果を表示します。
改行するVBAコード

Option Explicit

Private Sub MyChar()
    Dim s As String
    Dim i As Long
    Dim sei As String
    Dim mei As String
    
    i = 2
    Do
        s = Cells(i, 2)
        If s = "" Then
            Exit Do
        Else
            sei = Left(s, InStr(s, " ") - 1)
            mei = Right(s, Len(s) - InStr(s, " "))
        
            Cells(i, 4) = sei & Chr(10) & mei
            Cells(i, 5) = sei & Chr(13) & mei
            Cells(i, 6) = sei & vbCrLf & mei
        End If
        i = i + 1
    Loop
End Sub

実行結果

Chr(10)とvbCrLfは改行され2行になっていますが、Chr(13)は空白が削除されただけで1行のままです。
以上のことから改行するには、Chr(10)とvbCrLfになりますが、Chr(10)はカーソル位置が先頭にならないことを考えると、通常vbCrLfを使うのがいいようです。
Chr(10)とvbCrLfは改行され2行



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved