2013年11月30日

質問

質問です

VBAで

置換後の改行がうまくいきません


ある文字を検索して
その文字を置換して別の文字に


A→   B
     C

このBとCの間に改行コードを入れなくちゃいけないらしいんですが
それが、わかりません

最終的には、メモ帳に出力するんですが(出力はできる)
メモ帳では、メモ帳の改行コードがあるらしく、それも不明

置換も、1行を1行置換はできるんですが、1行を複数行に置換はできないんですよね

どうしたらいいんでしょ?? 



これができるようになると、仕事が早く終わるのに・・・





同じカテゴリー(研究室)の記事画像
卒業しました
鳥さんは竹1だったんか
最後のゼミ
次は貴様の番だ!
卒論オワタ いや本当に
今後の予定
同じカテゴリー(研究室)の記事
 実習助手 (2013-09-30 06:58)
 卒業しました (2012-03-22 10:26)
 鳥さんは竹1だったんか (2012-03-09 01:57)
 最後のゼミ (2012-03-01 19:05)
 卒研発表 (2012-02-12 07:50)
 次は貴様の番だ! (2012-02-08 22:53)

Posted by ハロ  at 13:20 │Comments(6)研究室

この記事へのコメント
Windowsの改行コードの問題なので以下のような方法で解消可能です。

'
' 文字列置換改行マクロ
'
'
Dim StrFN As String
StrFN = ActiveWorkbook.Path & "\data.txt" 'data.txtに書き込み

Dim pri_str, post_str, post_str2 As String

pri_str = "ABCDEFGHIJK" '置換前の文字列

post_str = Replace(pri_str, "B", "b" + vbLf + vbCrLf) '"B"を"b"に置換し"b"の後に改行コード追加

IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo
Print #IntFlNo, post_str
Close #IntFlNo
Posted by MAGI at 2013年11月30日 15:15
>MAGIさん
pir_strの中の文字列ではなくて
たとえば("A1:A18000")の中の文字列を探してくるっていう風にするにはどうすればいいのでしょうか?

改行コードを入力したあと、データ出力をすると
その改行コードがそのままでできてしまい
改行されません><
もうさっぱりです
Posted by ハロハロ at 2013年12月09日 09:54
ワークシート"Sheet1"セル内に下記のような文字データがあるとして
-----------------------------------
A1="Excel"
A2="Word"
A3="Power Point"
A4="Office"
A5="Access"
A6="Visual Basic"
A7="Visual C++"
A8="Outlook"
A9="Internet Explorer"
A10="Memo Pad"
-----------------------------------

'
' 文字列置換改行マクロ
'
'
Dim StrFN As String
Dim pri_str, post_str, post_str2 As String
Dim start_row, end_row, str_column, i As Integer

 StrFN = ActiveWorkbook.Path & "\data.txt" 'data.txtに書き込み
 start_row = 1 '検索開始行
 end_row = 10 '検索終了行
 str_column=1 '検索列

IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo

For i = start_row To end_row
 pri_str = Sheets("Sheet1").Cells(i, str_column).FormulaR1C1
 post_str = Replace(pri_str, "i", "I" + vbCrLf) '"i"を"I"に置換し"I"の後に改行コードを添付
 Print #IntFlNo, post_str
Next

Close #IntFlNo

上記を実行するとdata.txtの内容は、
-----------------------------------
Excel
Word
Power PoI
nt
OffI
ce
Access
VI
sual BasI
c
VI
sual C++
Outlook
Internet Explorer
Memo Pad
-------------------------------------
のようになり、"I"の後で改行され複数行化されますが、
このようなことではないのでしょうか?

あと、Excelのバージョンは何ですか?
Posted by MAGI at 2013年12月10日 18:08
>MAGIさん
その通りでございます

やはり、一行一行みていかないとダメみたいですね
シート1という、名前が変わってくるので
一度、シート1に入れる作業をして
そこから、範囲を指定して一行ずつ読んできて
変換&改行ってことですかね

あと、一番最後から見て行って
ある文字を検索して、消す
消すのは、置換で行けると思うんですが
最後のから見て行って、ある文字を消す
これが、できませんでした
最後の文字っていうのが、どこで終わるのかが、指定が不明です
Posted by ハロハロ at 2013年12月12日 11:26
すいません バージョンはエクセル10です
Posted by ハロハロ at 2013年12月12日 11:26
おかげさまで、改行ができました
ショートカットキーを設けて
入れて、キーを押すと、出力できるようになりました

そして、最後の問題です
末尾のほうに、不要な文字が存在します
その文字は、ほかのところでも使っているので
置換ではだめですかね

行の最後を検出して、そこから一番最初にヒットした、指定した文字を削除したい
Posted by ハロハロ at 2013年12月12日 19:06
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

プロフィール
ハロ
ハロ
スピードシューティング・APS・FPSをこよなく愛するハロです。
主にAPSを本腰で挑戦中
/"ハンドガン"/   
<フリー>
公式186-4×
練習会191-3×
練習200-3×
<オープン>
公式190-5×
練習会 186-5×
練習196-6×
/"ライフル"/
<フリー>
公式 121-2×
練習会160-3×
練習
<オープン>
公式 134-3×
/"取得バッチ"/
ハンドガン
グランドマスター
ライフル
シャープシューター
< 2018年04月 >
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
QRコード
QRCODE
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 2人

過去記事
アクセスカウンタ
↑LO↑ ↑たぬきそふと↑ たぬきそふと PCゲーム『少女教育』を応援中!

放浪息子