Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » Excel VBAで改行以降を削除する・改行までの文字列にする-InStr関数/Left関数

Excel VBAで改行以降を削除する・改行までの文字列にする-InStr関数/Left関数

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel vba 改行キーがある前の文字列を取り出す」
「excel vba 改行以降を削除」
「マクロ 改行までの文字列を取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折見られます。

Excelでは[Alt]+[Enter]キーを押すことでセルの中で改行することができます。

この、セル内改行以降の文字列を削除して、改行までの文字列にするVBA(Visual Basic for Applications)のコード・マクロを探している方による検索です。

[スポンサードリンク]

ある文字列の中から指定した文字列を検索し、最初に見つかった位置を返すInStr関数を利用してやれば、セル内改行以降を削除するマクロができます。

Sub 改行以降を削除する()
 Dim txt As String
 txt = ActiveCell.Value

 Dim pos As Long
 pos = InStr(1, txt, vbLf)

 ActiveCell.Offset(0, 1).Value = Left(txt, pos - 1)
End Sub

元データを変数txtに代入し、
 txt = ActiveCell.Value

1つ目の改行位置をInStr関数で取得し、
 pos = InStr(1, txt, vbLf)

Left関数を使って1つ目の改行までの文字列にすることで
 ActiveCell.Offset(0, 1).Value = Left(txt, pos - 1)

改行以降を削除しています。

最終更新日時:2023-05-31 07:07

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » Excel VBAで改行以降を削除する・改行までの文字列にする-InStr関数/Left関数

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.