| 
    
     |  | こんにちは。かみちゃんです。 
 >元々あったデータ(文字列)が消えてしまいます。
 
 元々あったデータから、改行コードを消したいのではないのですか?
 「つんさん」も私も、そうだと思って、コメントしています。
 
 元々のデータを残したいということなのでしょうか?
 少なくともSUBSTITUTE関数の場合は、元々のデータが消えることはないと思います。
 =SUBSTITUTE(A3,CHAR(10),"")
 は、A3に元々のデータがあって、B3など別のセルにこの数式を書いたらその別セルに改行コードを取り除いた値が入ります。
 
 また、VBAの場合の
 Sub セル内改行コード削除()
 ActiveCell.Value = Replace(ActiveCell.Value, Chr(10), "")
 End Sub
 は、現在のセルの値から改行コードを除いた値を「現在のセル」に入れます。
 そういう点で、SUBSTITUTE関数と異なります。
 
 もし、別のセルでに入れたいのなら、
 Sub セル内改行コード削除()
 Range("A1").Value = Replace(ActiveCell.Value, Chr(10), "")
 End Sub
 とすると、特定のセルに入ります。
 
 Sub セル内改行コード削除()
 ActiveCell.Offset(0, 1).Value = Replace(ActiveCell.Value, Chr(10), "")
 End Sub
 とすると、現在のセルの右隣のセルに入れます。(元々のデータは消えません)
 
 Sub Cell_Value_vbLf_Del()
 For Each c In Selection.Cells
 With c
 c.Offset(0, 1).Value = Replace(.Value, vbLf, "")
 End With
 Next
 End Sub
 とすると、選択した範囲の各セルの右隣のセルに入ります。
 ただし、選択範囲が連続した複数列にまたがる場合は、意図しない動きになります。
 
 |  |