こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXELよりVBAを使ってTXTを書き出すとき

VBA初心者です。
データをテキスト形式に書き出す際、同じ行のものを一列に書き出したいのですが、あるバイト数を越えると出来上がったテキストデータに改行が入ってしまいます。
それをなんとか解消したいのですがどうしたらよいでしょうか?
EXELは2000を使っています。どなたかよろしくお願いします。

投稿日時 - 2003-06-20 17:02:27

QNo.580398

すぐに回答ほしいです

質問者が選んだベストアンサー

#1です。
うぉ・・・SaveAsなんですね。
私、純粋にExcelの機能を使うのは苦手で。(^-^;
まるっきりVBちっくにならいけるんですが。。。

で、ご提示いただいたロジックでテストしてみたんですが
途中で改行じゃなくて、文字数が全然足りないものに。。。(笑) ・・・笑い事じゃないか。

で、本来なら、SaveAsで、こうすれば出来ますよ、という回答をするべきだと思いますが
それはどなたかにお任せするとして・・・(ごめんなさい)
こうなら出来たよ、というのを。

Private Sub Test()
Dim lngCol As Long
Dim strBuff As String
Dim fno As Integer

strBuff = ""
For lngCol = 1 To 4
strBuff = strBuff & Cells(1, lngCol).Value
Next

fno = FreeFile
Open "A:\仕訳データ2.txt" For Output Access Write As fno
Print #fno, strBuff
Close
End Sub

投稿日時 - 2003-06-20 17:58:26

補足

こちらもご連絡ありがとうございます。
すみません・・・VBはもっとよくわからなくて・・・
せっかく書き込みいただいたのですがどっからどこまで
移し変えていいのかわかりませんでした。
その前にも書き出しがあるので書き足します。
ややこしくてごめんなさい。

あるデータから一部を抽出して一度Aドライブに保存し、それをMYDOC内でバイト数を整理してAドライブ仕訳データ2.txtに保存をしています。この
バイト数の指示数によって改行されたりしなかったり。


ChDir "A:\"
ActiveWorkbook.SaveAs Filename:="A:\リファイル新.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close saveChanges:=False
ChDir "C:\My Documents\BMSEXCEL"
Workbooks.Open Filename:="C:\My Documents\BMSEXCEL\仕訳データ1.xls", _
UpdateLinks:=1
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="<>", Operator:= _
xlAnd

ChDir "A:\"
ActiveWorkbook.SaveAs Filename:="A:\仕訳データ2.prn", FileFormat:= _
xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Close saveChanges:=False

投稿日時 - 2003-06-20 18:01:31

お礼

ご協力ありがとうございました。

投稿日時 - 2003-06-20 19:15:20

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ひょっとしてテキストエディタの方で一定文字数を超えると見た目改行させて表示しているのではないでしょうか?
ウィンドウズ標準搭載のノートパッド(メモ帳)なら
編集(E)→右端で折り返す(W)
にチェックが入ってるとか?

投稿日時 - 2003-06-20 17:50:50

補足

たびたびお早いレスありがとうございます・・・。
確かにそういうのも怪しいですね。
恐れ入りますがXP標準搭載のメモ帳では「右端で折り返す」がありません。

投稿日時 - 2003-06-20 17:52:56

お礼

ご協力ありがとうございました。
書式の中にありましたがチェックははいっていませんでした。

投稿日時 - 2003-06-20 19:16:09

ANo.1

現在のコードではどうされてるんでしょう?
勝手に改行・・・なんて思い付かないですけど。。。

投稿日時 - 2003-06-20 17:32:42

補足

ご連絡ありがとうございます!
それがなぜか・・・。

ChDir "A:\"
ActiveWorkbook.SaveAs Filename:="A:\仕訳データ2.txt", FileFormat:= _
xlTextPrinter, CreateBackup:=False
ActiveWorkbook.Close saveChanges:=False

たとえばエクセルのAからDまでセルがあったとして、
Dのバイト数を71から72に変えると書き出されたデータが改行されてしまうのです。

投稿日時 - 2003-06-20 17:40:23

あなたにオススメの質問