エクセルマクロ(VBA)について質問です。


エクセルのセルの内容をテキストファイルに出力するマクロを組んでいるのですが、改行がうまく反映されません(ムダな改行が追加されてしまう)
何が原因なのでしょうか?

たとえば、エクセルのB列のセルに以下のような改行ありの文章が入力されている
------------------------------
今日は天気です。
今週はずっと晴天が続きます。
来週は雨模様になるでしょう。
------------------------------

しかし、これをテキストファイルに出力すると以下のようになってしまいます(改行が追加される)
------------------------------
今日は天気です。

今週はずっと晴天が続きます。

来週は雨模様になるでしょう。
------------------------------

ソースの一部

iOutFileNo1 = FreeFile
Open sOutFilePath1 For Output Access Write As #iOutFileNo1


For lIdx1 = 3 To lMaxRow
With Sheet1
naiyo = Trim(Cells(lIdx1, 2))
End With

Print #iOutFileNo1, naiyo
Next lIdx1
Close #iOutFileNo1

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/02/16 12:28:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b19901108 No.1

回答回数55ベストアンサー獲得回数6

ポイント100pt

naiyo = Trim(Cells(lIdx1, 2))

→naiyo = Trim(Cells(lIdx1, 2).value)

でどうですか?

id:Ryo0524

やってみましたができませんでした。

ちなみに

naiyo = Range("B",lIdx1).value

もやってみましたが同じでした。

2010/02/16 11:32:25
  • id:Ryo0524
    書き忘れましたが、テキストファイルの文字コードはShift_JIS、改行コードはCRLFです。
  • id:b19901108
    あー改行コードをlfに変更しないといけないですね。

    Replace(変換文字列, vbCrLf, vbLf)

    でどうですか?

  • id:HALSPECIAL
    HALSPECIAL 2010/02/16 11:59:24
    ↑↑↑


    vbCrLf → vbLf への置換は間違っています。


    http://hima.chu.jp/flash/tips/shiftjis.htm
  • id:b19901108
    Print #iOutFileNo1, naiyo
    →Print #iOutFileNo1, replace(naiyo, vbCrLf, vbLf)
    で、ダメでした?
  • id:Ryo0524
    >b19901108さん

    Replace(変換文字列, vbCrLf, vbLf)
    をしてみたらできました!!

    ありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません