• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • 全セルの末尾に改行(Alt+Enter)を入れたい

    エクセル2003を使用しています。 セルを複数選択し、全セルの末尾に改行(Alt+Enter)を入れたいのですが方法はありますか。 ※「改行を一度に削除したい」という質問はよくありますが、その逆となります。

  • 「Alt+Enter」ではない、セル内の改行

    エクセルを使用しているとき、セルでの入力を終え、下段にアクティブセルを移そうとEnterを押しました。 すると、Alt+Enterを押したときのようにセル内で改行されてしまいます。 Enterで下段に移動するように設定する方法を教えてください。 会社で不特定多数の人間が使用しているPCなので、誰かが設定を変えてしまったのかと思い、ツール→オプションを見てみましたが、わかりませんでした。

  • Excel(エクセル)のセル内の改行がAlt+Enterでできなくなりました。

    いろいろ調べてみたのですがどうしてもわからないので教えてください。 エクセルのセル内の改行をAlt+Enterキーで、この前までは改行できていたのですが、急に使えなくなってしまいました。 Altキーが無効になっているのかと思い、ユーザ補助のキーボードの設定を見てみたのですが、見てもわかりませんでした。 直す方法などを教えてください。 尚、Windows XP Excel2000を使用しています。 よろしくお願い致します。

  • エクセルの改行(Alt+Enter)

    エクセルのセル内で改行する、Alt+Enterのショートカットが突然きかなくなってしまいました。 仕事が進まず大変困っております。 直す方法をご存知のかたがいらっしゃいましたら、宜しくお願いいたします。

  • Excel2003:セル内の改行について

    セル内で改行するには「Alt」+「Enter」で可能ですが、これをEnterのみ、若しくはそれに代わる何かワンタッチで出来る方法は無いでしょうか? よろしくお願いいたします。

  • 【excel】 セル内の改行

    こんばんは! エクセル初心者です。どうしてもわからないことがあるので質問させてください。 セル内に長い文章を打ち込むと、その長い文章だけが表から飛び出てしまいます。なので改行をしたいと思い、ココで色々検索し、「Enter」キー+「Alt」キーを押せば改行ができることまでは分かりました。しかし実際にやってみてもいざ印刷すると文章の一部しか印刷されません。私は改行したい場所にカーソルを置いて「Enter」キー+「Alt」キーを押したのですが、これでは間違っているのでしょうか…? ちなみにWindows XP使用です。よろしくお願い致します!

  • EXCEL2002でセル内で改行(Alt+Enter)した時に、行の高さを変えない方法

    初めて質問させていただきます。どうぞよろしくお願いいたします。 EXCEL2002でセル内で改行(Alt+Enter)をすると、自動的にそのセルのある行の高さが変わってしまいます。 その時セルの書式を見ると「配置」タブ内の「折り返して全体を表示する」に勝手にチェックが入ってしまっているので、このチェックをはずすと、行の高さも元に戻るのですが、いちいちするのに手間がかかっています。 行の高さが勝手に変わらないようにする方法というのはあるのでしょうか。 どうぞよろしくお願いいたします。

  • 【Excel 2003】 折り返しとセル内での改行

    こんにちは。 類似の質問を見つけられなかったので投稿させていただきます。 以下の方法をご教授ください。 「折り返してセルの全体を表示される」のチェックを外した際に alt + Enter での改行(等)が無視されてしまうことを防ぎたい。 これは以下の手順で再現します。 (1) 「折り返してセルの全体を表示される」ボックスのチェックが 無い 状態でセルの列幅を越える文字数を入力します。 → この時点では、右隣のセルまで文字は侵入していますが、表示されます。 (2) 次に、(1)で書いた文字列の最後尾で alt + Enter を入力し、セル内改行を行います。 (3) そのセル内の2行目に再度セルの列幅を越える文字数を入力します。そしてそのセルの編集を終えます。(Enter押下) → すると自動的に「折り返してセルの全体を表示される」が適用されるようで(これも納得はいかないのですが。。)、強引にセルの列幅に合わせられる形で全体が表示されます。 (4) しかたないので、改めて上記で編集してきたセルの書式設定から 「折り返してセルの全体を表示される」ボックスのチェックを外します。 → すると今度は、alt + Enter の改行が無かったかのように1行で表示されます。 ※ 但し、数式表示ウィンドウ(fx)では問題なく改行された状態で表示されます。 この問題の解決方法をご教授願います。 なおこの事象は、改行を含むテキストデータのコピー&ペーストでも同様に発生します。 宜しく御願いします。

  • 【Excel】文字の削除方法について

    Excelで1つのセルの中に Alt+Enterで数行に改行された文章が入っています。 だいたい2000行くらいです。 1行目の先頭と末尾は必ず*と決まっています。 この先頭の1行だけ削除したいのですが、何か良い方法はないでしょうか? マクロで1文字づつ確認しながら、2つ目の*が来たら そこまで削除という方法くらいしか思いつきません。

  • VBAで改行削除

    A列でセル内改行(Alt+Enter)をするとメッセージボックスが出るようにしましたが、 且つ、改行以降を削除したいのですが どうすればよろしいでしょうか? <例> あ か ↓ あ  "か"と、改行を削除したい。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Value Like "*" & vbLf & "*" And Target.Column =1 Then MsgBox "改行禁止", vbOKOnly + vbCritical End If End Sub 宜しくお願い致します。

専門家に質問してみよう