• ベストアンサー

EXCELのセル内改行の削除について

お世話になります。 どなたかご教授お願いします。 セル内のデータの末尾にあるセル内改行を一括削除するにはどのようにすればいいのでしょうか。 前後空白を削除する、trim関数の「セル内改行」版のような事をしたいのですが、どのようにマクロを記述すれば良いかわかりません。 A1~A1000まで下記のようなデータが入っています。末尾のセル内改行は一つとは限らず、二つ以上入っていることもあります。 あああ(セル内改行) いいいい(セル内改行) ううう(セル内改行) ↓ あああ(セル内改行) いいいい(セル内改行) ううう すみませんが、どなたかご教授お願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

最後にセル内開業がない場合も考慮すると、こんなマクロでもできるでしょう。 Sub Macro1() Dim trg As Range  For Each trg In Range("A1:A1000")   If Len(trg.Value) > 0 Then    If Right(trg.Value, 1) = Chr(10) Then     trg.Value = Left(trg.Value, Len(trg.Value) - 1)    End If   End If  Next End Sub

miumiu88
質問者

お礼

回答ありがとうございます。 望んでいる通りの形で削除が行えました。 本当に助かりました。 ありがとうございます。

その他の回答 (3)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

#3です。「末尾の改行文字だけ」だったんですね。 ならClean関数では「すべての改行文字を除去」なのでごめんなさい。 VBAでならば 1)Split関数を利用し、区切り文字にセル内改行(vbLF)を指定して区切る。 2)区切られた個数をBoundで取得。 3)Forループで末尾から(Step-1)有効なデータが出現する個数を取得 4)Forループで、有効なデータが出現す個数までを区切り文字vbLFを挟みながら結合する。 です。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

マクロ(VBA)で無ければダメですか? ワークシート関数に[Clean]がありますよ。 セルA1~A10に対象セルがあり、セルB1~B10に結果を返すなら、 セルB1に式[=Clean(A1)]を設定し、セルB2~B10へコピー&ペースト。 マクロ(VBA)でやるなら、以下の方法が簡単。 Split関数を利用し、区切り文字にセル内改行(vbLF)を指定して区切る。 得られた結果を、Join関数を利用し、区切り文字に""を指定して連結する。 ユーザー定義関数で使用するサンプル セルに式[=改行文字除去(A1)]を設定すれば使えたはず function 改行文字除去(argString as string) as string 改行文字除去 = Join(Split(argString, vbLF),"") end function

miumiu88
質問者

お礼

回答ありがとうございます。 Clean関数は、質問する前に試したのですが、セル内改行が全て削除されてしまい、望んでいる方ではありませんでした。 ユーザー定義関数というものもあるのですね。こちらも、セル内改行が全て削除されてしまい望んでいる形と違ったのですが、勉強になりました。 ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

目に見えない改行記号も一文字ですから以下でいけるはずです。 Sub test01() For i = 1 To 1000 With ActiveSheet .Cells(i, "A") = Left(.Cells(i, "A"), Len(.Cells(i, "A")) - 1) End With Next End Sub

miumiu88
質問者

お礼

回答ありがとうございます。 望みの形で削除を行えたのですが、データの末にセル内改行がないデータを含んでいたためか、実行時エラー5が出てしまいました。 でも、勉強になりました。 ありがとうございました。

関連するQ&A

  • excelでセル内の改行を削除する

    excelの改行削除について質問です。 セル内の改行を一括削除する方法として「Ctrl」+「J」の 置換でできると思うのですが、文字がたくさん入っているセルに 対して行うと、「数式が長すぎます。」のポップアップが出てしまいます。 CLEAN関数で行おうとするも、文字数が多いためかきちんと表示されません。 他に何か良い方法はないでしょうか?

  • エクセル セル内の改行削除を教えて下さい

    関数や置換えは使用せずに、フリーソフトでのエクセル セル内の改行削除方法を探しています。対象のセルがかなり多い為、一括変換が望ましいです。この処理が出来るフリーソフトをご存知であれば、教えて頂けませんか?

  • セル内改行された文字列の上段のみ消す

    いつもお世話になっています。 セル内改行された文字列の上段のみ消す方法を探しています。 たとえば、 セルA1に 12345       67890 のようにセル内で改行されたデータがあります。 そのうちの上段12345のみを削除したいのですが、 そういったことは可能でしょうか。 関数でもマクロでも方法があればなのですが。 よろしくお願いします。 

  • エクセル 行数指定し一つのセルに改行込で入れる

    日本語が下手でもうしわけないです。 エクセルのマクロにて、行数指定指定したセルを別セルに 改行を含めて入れたいのです。 具体的なやりたいこととしては、 A列に不定期間隔で不定形の文字列が入力されていて、(間は空白) その文字列から文字列の行数を読み、 B列の同じ行数分のセルをひとまとまりとし、 別シートのA1に改行込みで入れる。 次のまとまりはA2に次はA3に… といった動作をさせたいです。 例. 1.A1,A6,A9に文字列があるとする。間は空白 文字列間の行数を読む (1)A1-A5 (2)A6-A8 (3)A9-最終行 2.A列で取得した行数と同じ行数をB列で指定 (1)B1-B5 (2)B6-B8 (3)B9-最終行 3.B列で指定したセルをひとまとまりとして 別シートのA1から順に改行込みで入れる (1)シート2のA1 B1(改行) B2(改行) B3(改行) B4(改行) B5(改行) (2)シート2のA2 B6(改行) B7(改行) B8(改行) (3)シート2のA3 B9(改行) ・ ・ 最終行 ####### マクロでの実現を考えているのですが、 マクロ初心者でさっぱりわかりません。 どなたか、マクロでの記述例を教えて頂けないでしょうか。 また、関数で実現できるのであれば、そちらも教えて頂きたいです。 宜しくお願いします。

  • 改行コードを取りたい

    測定器からデータを取得してエクセルに張り付けるマクロを作っているのですが、 取得したデータをそのままセルに張り付けると(例:「test」という文字列を取得した場合) 「test    」 のようにセルにAlt+Enterを押して改行された様な感じになります。 空白はtrimで除去したのですが、改行はどうやって取れば良いのでしょうか?

  • マクロで半角・全角スペースと改行を削除したい

    マクロ初心者です。 BookA-sheetAの「F1:F40」に入っている文字列左右(前後)の半角・全角スペースと、 改行コードを削除したいのですが、書いてみたマクロはエラーが出てしまいます。 trim関数と、改行コード削除はどう組み合わせればよいのでしょうか? 初心者で申し訳ないのですが、ご教示いただければ幸いです。

  • 文字列の結合、改行、空白削除

    複数のセルを参照して文字列を結合し、2つずつでCHAR(10)で改行し、未入力のセルの空白を削除する方法はありませんか? =SUBSTITUTE(TRIM(A1&" "&B1&CHAR(10)&A2&" "&B2&CHAR(10)&A3&" "&B3&CHAR(10) &A4&" "&B4&CHAR(10)&A5&" "&B5),"","") 現在、上記のような数式を入れて一つのセルに表示させています。 しかし、これだと後半のセルが未入力の場合、空白で表示されるため、表示させるセルの中で結合した文字列が上の方に行ってしまいます。 表示させるセルは縦横共に中央揃えにしたいのですが、何かいい方法はありませんか? まだまだ初心者ですが、いろいろ調べた結果、とりあえず上記の式にたどり着きました。 マクロではなく関数でなんとかなればと考えております。 分かりにくい文章になってしまったかもしれませんが、よろしくお願いします。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • エクセルのセル内の改行を削除する方法

    以下のようなセルが沢山あります。 ※[改行]とは改行が入っているという意味です。 -------------------セルの中身はここから [改行] [改行] [改行] (1)みかん[改行] (2)こたつ[改行] (3)おもち[改行] [改行] [改行] -------------------セルの中身はここまで。 このとき、文章が入っていないところの[改行]、および、最終行の[改行]だけを自動で削除して、 -------------------セルの中身はここから (1)みかん[改行] (2)こたつ[改行] (3)おもち -------------------セルの中身はここまで。 このように整形するためにはどういうVBAもしくはマクロを作ったらよいでしょうか?

  • セル内改行

    A1セルに A B1セルに B とデータが入っていて C1セルに A      B というようにセル内改行をする関数は無いでしょうか

専門家に質問してみよう