Page 775 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼改行を消すマクロ 集計X 03/2/18(火) 18:43 ┗Re:改行を消すマクロ パピー 03/2/18(火) 19:42 ┗Re:改行を消すマクロ【追加】 パピー 03/2/19(水) 10:08 ┗Re:改行を消すマクロ【追加】 ばば 03/2/19(水) 17:20 ┗Replace関数を使わずに。 パピー 03/2/20(木) 8:40 ┗Re:Replace関数を使わずに。 集計X 03/2/20(木) 8:59 ┗Re:Replace関数を使わずに。 Jaka 03/2/20(木) 9:31 ┣Re:Replace関数を使わずに。 ばば 03/2/20(木) 10:46 ┗Re:Replace関数を使わずに。 集計X 03/2/21(金) 12:09 ─────────────────────────────────────── ■題名 : 改行を消すマクロ ■名前 : 集計X ■日付 : 03/2/18(火) 18:43 -------------------------------------------------------------------------
はじめまして。 K列には改行を含む文章が入っています。 マクロ前半では、全角大文字英数カナを半角小文字英数カナに変換しています。 その後に、改行を削除したいのです。 そこで以下のようなマクロを組んでいます。 ------------------------------- 'K列を昇順でソート Cells.Select Application.CutCopyMode = False Selection.Sort Key1:=Range("K1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin 'K列のセル内改行を除去 Cells.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False Range("A1").Select .... ----------------------------------- これを走らせると場合により、改行除去のところで とまってしまいます。 なにが原因でしょうか? |
▼集計X さん:こんばんは。 >その後に、改行を削除したいのです。 次のコードが参考になりませんか? A1セルの内容をC1セルに表示します。 A1セルに改行の入ったデータを準備してください。 Sub Test() Range("C1") = Replace(Range("A1"), vbLf, "") End Sub |
パピーです。 追加します。 次のコードは、K列のセルを対象としました。 (K2セルからK列のデータのある最後まで) Sub test1() For i = 2 To Cells(Rows.Count, 11).End(xlUp).Row Range("K" & i) = Replace(Range("K" & i), vbLf, "") Next End Sub |
横から失礼します。 Replace関数はEX2000から使えたと思いますが、 EX97でReplace関数に変わるものを探しています。 自分で作ればいいのかしれませんが、作り方も分かりません。 Replace関数の97バージョンお分かりでした教えてください。 >Sub test1() > For i = 2 To Cells(Rows.Count, 11).End(xlUp).Row > Range("K" & i) = Replace(Range("K" & i), vbLf, "") > Next >End Sub |
▼ばば さん:こんにちは。 >Replace関数の97バージョンお分かりでした教えてください。 すいません、97バージョンの件わかりません。 そこで、Replace関数を使わずに作成してみました。 サンプルは、A1セルの文字列をC1セルに結果表示します。 試してみて下さい。 Sub test1() Dim M As String Dim L As Integer L = Len(Range("A1")) M = "" For i = 1 To L If Mid(Range("A1"), i, 1) <> Chr(10) Then 'vbLf 又は Chr(10) M = M & Mid(Range("A1"), i, 1) End If Next Range("C1") = M Range("C1").WrapText = False 'Trueの場合セル内の文字列を列幅で折り返す。 End Sub |
お返事遅れてすみません。 いろいろご返答いただき、恐縮です。 さっそく、試しておりますので、また返答いたします。 ひとまずお礼まで。 |
こんにちは。 Sub ggg() Dim myRange As Range Set myRange = Range("K2", Cells(Rows.Count, "K").End(xlUp)) myRange = Application.Substitute(myRange, vbLf, "") Set myRange = Nothing End Sub |
パピーさん Jakaさん ありがとうございました Substituteを使えばよかったんですね。 今までは、文字列を一度シートに書き出して、Repalceメソッドで処理してました。 参考になりました。ありがとうございました |
Jaka さん,パピ−さん ありがとうございました。 助かりました。 |