2013年11月30日
質問
質問です
VBAで
置換後の改行がうまくいきません
ある文字を検索して
その文字を置換して別の文字に
例
A→ B
C
このBとCの間に改行コードを入れなくちゃいけないらしいんですが
それが、わかりません
最終的には、メモ帳に出力するんですが(出力はできる)
メモ帳では、メモ帳の改行コードがあるらしく、それも不明
置換も、1行を1行置換はできるんですが、1行を複数行に置換はできないんですよね
どうしたらいいんでしょ??
これができるようになると、仕事が早く終わるのに・・・
VBAで
置換後の改行がうまくいきません
ある文字を検索して
その文字を置換して別の文字に
例
A→ B
C
このBとCの間に改行コードを入れなくちゃいけないらしいんですが
それが、わかりません
最終的には、メモ帳に出力するんですが(出力はできる)
メモ帳では、メモ帳の改行コードがあるらしく、それも不明
置換も、1行を1行置換はできるんですが、1行を複数行に置換はできないんですよね
どうしたらいいんでしょ??
これができるようになると、仕事が早く終わるのに・・・
'
' 文字列置換改行マクロ
'
'
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
pir_strの中の文字列ではなくて
たとえば("A1:A18000")の中の文字列を探してくるっていう風にするにはどうすればいいのでしょうか?
改行コードを入力したあと、データ出力をすると
その改行コードがそのままでできてしまい
改行されません><
もうさっぱりです
-----------------------------------
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のバージョンは何ですか?
その通りでございます
やはり、一行一行みていかないとダメみたいですね
シート1という、名前が変わってくるので
一度、シート1に入れる作業をして
そこから、範囲を指定して一行ずつ読んできて
変換&改行ってことですかね
あと、一番最後から見て行って
ある文字を検索して、消す
消すのは、置換で行けると思うんですが
最後のから見て行って、ある文字を消す
これが、できませんでした
最後の文字っていうのが、どこで終わるのかが、指定が不明です
ショートカットキーを設けて
入れて、キーを押すと、出力できるようになりました
そして、最後の問題です
末尾のほうに、不要な文字が存在します
その文字は、ほかのところでも使っているので
置換ではだめですかね
行の最後を検出して、そこから一番最初にヒットした、指定した文字を削除したい