Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7812 / 13645 ツリー ←次へ | 前へ→

【36710】文字列内の改行を置換または削除する keita 06/4/10(月) 14:35 質問[未読]
【36712】Re:文字列内の改行を置換または削除する とおりすがり 06/4/10(月) 14:42 発言[未読]
【36713】Re:文字列内の改行を置換または削除する Kein 06/4/10(月) 14:45 回答[未読]
【36716】Re:文字列内の改行を置換または削除する keita 06/4/10(月) 15:05 お礼[未読]

【36710】文字列内の改行を置換または削除する
質問  keita  - 06/4/10(月) 14:35 -

引用なし
パスワード
   はじめまして、keitaと申します。

Excel2000 にてVBAマクロを作成しています。
あるセルから取得した内容(文字列)をCSVファイルに出力しようとしています。

strbufにセルの内容を取得し、
Print #n, strbuf
によってファイルに出力しているのですが、
ここで、対象セルに改行がはいっていた場合、出力ファイルにも改行が入ってしまいます。
(実際はセルに改行が入っていた場合でも、CSVファイルには改行なしで出力したいと思っています。)

そこでstrbufの改行を置換または削除したいのですが、どのような方法がありますでしょうか。
(できれば改行を何らかの特定の文字列に置換して改行位置を記憶しておきたい。)

よろしくおねがいします。

【36712】Re:文字列内の改行を置換または削除する
発言  とおりすがり  - 06/4/10(月) 14:42 -

引用なし
パスワード
   ▼keita さん:
>はじめまして、keitaと申します。
>
>Excel2000 にてVBAマクロを作成しています。
>あるセルから取得した内容(文字列)をCSVファイルに出力しようとしています。
>
>strbufにセルの内容を取得し、
>Print #n, strbuf
>によってファイルに出力しているのですが、
>ここで、対象セルに改行がはいっていた場合、出力ファイルにも改行が入ってしまいます。
>(実際はセルに改行が入っていた場合でも、CSVファイルには改行なしで出力したいと思っています。)
>
>そこでstrbufの改行を置換または削除したいのですが、どのような方法がありますでしょうか。
>(できれば改行を何らかの特定の文字列に置換して改行位置を記憶しておきたい。)
>
>よろしくおねがいします。

見た目で改行が入っているように見えても、データ上は何が入っているのか不明です。
vbcrlf,vblfとかあるとおもうけど。
改行のデータが何かを特定できたら、Replaceで改行文字を削除するなり特定の文字列に置換すればいいと思うけど。

【36713】Re:文字列内の改行を置換または削除する
回答  Kein  - 06/4/10(月) 14:45 -

引用なし
パスワード
   文字列の置換は、97以前のバージョンならワークシート関数の Substitute を
使えば出来ます。2000以降はVBA関数にある Replace で出来ます。改行文字は
通常 2種類しかないので

strbuf = Replace(strbuf, vbCr, ",")
strbuf = Replace(strbuf, vbLf, ",")

ぐらいで出来ると思います。

【36716】Re:文字列内の改行を置換または削除する
お礼  keita  - 06/4/10(月) 15:05 -

引用なし
パスワード
   とおりすがりさん、Kein さん 素早い回答ありがとうございます。

>strbuf = Replace(strbuf, vbCr, ",")
>strbuf = Replace(strbuf, vbLf, ",")

vbCr と vbLf を片方づつ組込んで作成したところ、vbLfの方で正しい置換を行うことができました。
改行コードはvbLfだったようです。

念のため、vbCr, vbLF 両方を組込んで、それ以外の改行コード(あるか分かりませんが)については仕様限定とすることとしました。

本当にありがとうございました。

7812 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free