• ベストアンサー

Excelセル内の改行を含む文字列の1行目抽出

Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Option Explicit Sub ExtractLine01() Dim xRange As Range Dim xLine As Variant For Each xRange In ActiveSheet.UsedRange xLine = Split(xRange.Value, vbLf) If (UBound(xLine) > 0) Then xRange.Value = Application.WorksheetFunction.Clean(xLine(0)) End If Debug.Print xRange.Address & ":" & xRange.Value & ":" & UBound(xLine) Next End Sub

rock1197
質問者

お礼

美しいコードですね。vbaを勉強中ですが、たぶん、こんなコードは自分は書けないと思います。動作さ理想どおりの動きです。 ありがとうございました。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

改行はVblfですね。 こんな感じです。 wk = Split([a1], vbLf)(0)

rock1197
質問者

お礼

ありがとうございます。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>「改行コード」おかしみたいで動作しません。 実際に一文字切り出して調べてみればわかりますが,vbcrlfじゃなくvblfです。 >これをVBAで書く方法 sub macro1() range("B1") = left(range("A1"), instr(range("A1") & vblf, vblf) - 1) end sub

rock1197
質問者

お礼

ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

以下の式でやってみてください。 =LEFT(A1,FIND(CHAR(10),A1)-1)

rock1197
質問者

お礼

char(10)でしたか。失礼しました。ありがとうございました。