[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでの改行コードを含む置換』(Excel2003)
質問させてください。 セルに入っているデータからHTMLを調整しようとマクロを組みました。 が、置換で問題が起きました。 改行コードを含むとダブルコーテーションがうまく置換されないのです。
以下のコードで置換すると Selection.Replace What:="</font>", Replacement:="</h2>" & vbNewLine & "<ul class=""shop"">"
結果が以下になります。 </h2> <ul class=""shop"">"
希望は </h2> <ul class="shop">
なのですが、どうやったらうまくいくのでしょうか? 宜しくお願い致します。
こちらで試しましたが、「希望は」の結果になりましたよ? 置換前の文字列を再度確認されてはどうでしょうか? (ROUGE)
言葉足らずで、済みません。 エクセル上は希望結果の様に見えるのですが 実際にセルをエディターなどにコピペすると上の結果になってしまうんです。 セル内をコピーすると余分な " が入らずにうまくいくのですが 出来たデータを範囲コピペしたいもので;
また、セル内の改行を置換に含まなければ " がダブると言う事も無いみたいです。 (Excel2003)
問題は「置換した」と言う事ではなく 「セル内改行をした」と言う事のように思います。
セルに直接入力した文字でも、セル内改行(Alt + Enter)が有るものは ""で囲われて貼り付きますので。。。。
例えば <FONT>ABC</FONT>を</FONT>の前でセル内改行してメモ帳に貼り付けると "<FONT>ABC(↑改行コード)</FONT>" となります。
エディタの方で置換するのでは駄目なのですかね?
(HANA)
HANAさんありがとうございます。 ホントですね; 仕様なんでしょうか
エディタで置換もいいのですが、なるべく貼り付ける作業だけで完了したいので 行を追加して分けるようにします!
ありがとうございました。 (Excel2003)
>行を追加して分けるようにします! って言うのは、どういう方針なのですかね?
データの配置が良く分からないので、 そのままでは使えないかもしれませんが・・・
↓vbNewLineの改行コードが有った場合、 そこでデータを区切り下の行へ移動させます。 A列の値に対して処理を行い、結果をB列に書き出します。 Sub 下の行へ() Dim i As Long, j As Integer, data Dim tbl, x, xi As Integer ReDim x(1 To Rows.Count, 1 To 1) tbl = Range("A1", Range("A" & Rows.Count).End(xlUp)) For i = 1 To UBound(tbl, 1) If tbl(i, 1) Like "*" & vbNewLine & "*" Then data = Split(tbl(i, 1), vbNewLine) For j = 0 To UBound(data) xi = xi + 1 x(xi, 1) = data(j) Next j Else xi = xi + 1 x(xi, 1) = tbl(i, 1) End If Next i Range("B:B").Clear Range("B1").Resize(xi, 1) = x End Sub
(HANA)
わざわざ、コードまでありがとうございます。 データー自体は割りと単純なので下記のようにしてしまいました ココに載せるのは恥ずかしいのですが;
Set VBLF1 = Cells.Find(vbNewLine) Do If Not VBLF1 Is Nothing Then VBLF1.Activate CLEN = Len(ActiveCell) kaigyo = InStr(ActiveCell, vbLf) bef = Left(ActiveCell, kaigyo - 1) aft = Right(ActiveCell, CLEN - kaigyo) ActiveCell.Offset(1, 0).Insert shift:=xlDown ActiveCell.Replace what:=vbLf & aft, replacement:="" ActiveCell.Offset(1, 0) = aft End If Set VBLF1 = Cells.Find(vbLf) Loop While Not VBLF1 Is Nothing
HANAさんのコードを参考に勉強させて頂きますね。 ありがとうございました。
あ、いやいや それでよいと思いますよ。 一つずつ確認しないので そちらの方が良いかもしれません。 ・・・見つかったらその都度行の挿入が有るので 少し時間が掛かるかもしれませんが・・・ 実際問題としては、気にならないと思いますし。
データ内容が分からないので駄目かもしれませんが 通常は</FONT>の後は何もないと思います。
それなら、一度</FONT>を捜して置換して vbNewLine を捜して処理(行を分ける)をしなくても </FONT>を捜して </h2> に変更し、行挿入して <ul class="shop"> を入力 でも 良いのかもしれません・・・。
・・・実際に試した訳ではないので、ご参考程度に。
(HANA)
テキストボックスでやればいいような気がする。(アカギ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.