• ベストアンサー

セル内で改行(Alt+Enter)以降の文字列を削除(Excel VBA)

セル内にAlt+Enterで改行している文字列があるのですが、1つめの改行以降の文字列を削除したいのですが、方法が分かりません。 どなたかお教えいただけないでしょうか? Excel2002を使用しております。 あいうえお かきくけこ   ↓ あいうえお よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

各セルの値(文字列)の中に、折り返して表示している場合は、改行コード(文字コード10)があります。 これをVBのInstr関数でさがいそれまでのあたい(文字列)を そのセルの値とすればよい。簡単です。 ーー VBEの標準モジュールに Sub test01() For i = 1 To 6 p = InStr(Cells(i, "A"), vbLf) If p = 0 Then Else Cells(i, "a") = Left(Cells(i, "A"), p - 1) End If Next i End Sub 最初の改行までしか問題にしてません。 例データ A列 (処理後)     (元データ) 横浜市 "横浜市               港北区" 静岡市 静岡市 温度が "温度が               高い" 今日は雨だ 今日は雨だ asd "asd               jkdfg" 13 "13               345"

その他の回答 (2)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。 置換機能を利用するとして、対象範囲を選択して[編集]-[置換]。 [検索する文字列]に [ctrl]キー+[j]キー同時押し。(何も表示されませんがセル内改行文字です) そのあとに * (ワイルドカード)を入力。 [置換後の文字列]に 何も入力せず[すべて置換]。 ...でどうでしょう。 VBAなら、以上を記録すると .Replace What:="" & Chr(10) & "*"... と録れます。 Chr(10) は文字定数で vbLf を使う方が良いでしょう。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆Excel VBA ではないので、ご希望ではありませんが ★A1に下のように入力されているものとして あいうえお かきくけこ =LEFT(A1,FIND(CHAR(10),A1)-1) または、 =REPLACE(A1,FIND(CHAR(10),A1),50,)

関連するQ&A

専門家に質問してみよう