プロが教えるわが家の防犯対策術!

Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。

たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。

Left("A1", Find(vbCrLf, "A1"))
(改行コードをさがして、そこまでの文字列を切り取る)


これをVBAで書く方法があれば、コードを教えてください!

A 回答 (4件)

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
    • good
    • 1
この回答へのお礼

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

お礼日時:2013/03/27 15:36

改行はVblfですね。


こんな感じです。
wk = Split([a1], vbLf)(0)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/27 15:34

>「改行コード」おかしみたいで動作しません。


実際に一文字切り出して調べてみればわかりますが,vbcrlfじゃなくvblfです。


>これをVBAで書く方法

sub macro1()
range("B1") = left(range("A1"), instr(range("A1") & vblf, vblf) - 1)
end sub
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/03/27 15:34

以下の式でやってみてください。



=LEFT(A1,FIND(CHAR(10),A1)-1)
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/27 15:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!