• ベストアンサー

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

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

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

  • ベストアンサー
noname#11856
noname#11856
回答No.3

#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

liunyan
質問者

お礼

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

liunyan
質問者

補足

こちらもご連絡ありがとうございます。 すみません・・・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

その他の回答 (2)

回答No.2

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

liunyan
質問者

お礼

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

liunyan
質問者

補足

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

noname#11856
noname#11856
回答No.1

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

liunyan
質問者

補足

ご連絡ありがとうございます! それがなぜか・・・。 ChDir "A:\" ActiveWorkbook.SaveAs Filename:="A:\仕訳データ2.txt", FileFormat:= _ xlTextPrinter, CreateBackup:=False ActiveWorkbook.Close saveChanges:=False たとえばエクセルのAからDまでセルがあったとして、 Dのバイト数を71から72に変えると書き出されたデータが改行されてしまうのです。

関連するQ&A

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

    VBA初心者です。 データをテキスト形式に書き出す際、同じ行のものを一列に書き出したいのですが、あるバイト数を越えると出来上がったテキストデータに改行が入ってしまいます。 それをなんとか解消したいのですがどうしたらよいでしょうか? OSはWIN-XP、EXELは2000を使っています。どなたかよろしくお願いします。 (VBの方でご協力いただいた方は重複してしまうかもしれませんが申し訳ありません。)

  • Exelでデータ数を減らす方法&カレイダグラフ

    テキスト形式のデータがあります。 それをExelなどで開こうとすると、 データ数が多いため、全部開くことが出来ません。 テキストデータの数を見たところ、約10万個データがありました。 こういった場合、読み込ませることは可能なのでしょうか? あるいは適当に抽出してあげて、Exelで読み込ませることが出来る 6万5千個以内のデータ数にすることは可能でしょうか? (データは不連続ではなく、連続に近いものです) 最終的には「カレイダグラフ」というソフトで、読み込ませたいのですが・・・。 こちらのソフト上でも操作できるのであれば、教えてください。 些細な事でもかまいませんので、何か知ってる事があれば教えてください。 よろしくお願いします。

  • .txt 形式ってどれですか?

    ファイル形式:1行40字のテキストファイル(.txt)形式 という規定があるのですが僕が使っているのは ミ田 ウインドウズ98 mixrosoft word 2000です 保存するときに、 リッチテキスト形式 テキスト テキスト + 改行 エンコードされたテキスト 等あるのです。 他にもあるのですが保存するとメモ帳形式になってしまうのですがどれですか?

  • VBAでメールを送る際の、改行文字について

    初心者です。ACCESS2013にてVBAでツールを作成しています。 フォームでテキストのデータをDocmd.SendObject でメール送信をしようとしています。 その際、フォームのテキスト内のデータに改行がある場合、どのように作成したらよいのでしょうか?

  • VBAでの構築の質問

    VBAの初心者ですが、データの抽出をしたいと考えています。 フォルダの中に、複数のテキストファイル形式のデータがあり、 その中にあるファイル毎の一部データのみ抽出できないかと考えております。 元データ(1)(テキストファイル形式) 10行目にあるデータ A TOKYO 20行目にあるデータ 100 200 1000 2000 (データの間には、スペースがあります。) 元データ(2)(テキストファイル形式) 10行目にあるデータ B Fukuoka 20行目にあるデータ 300 400 3000 4000 (データの間には、スペースがあります。) 編集後のデータは、それぞれのテキストデータ ・10行目データの2番目の抽出 ・20行目データの2番目の抽出 ・20行目データの4番目の抽出 を抽出できないかと考えています。 編集後データ(エクセルファイル形式に出力)は、下記のような感じできないかと考えてます。     (A列) (B列) (1行目)TOKYO Fukuoka (2行目)200 400 (3行目)2000 4000 皆さんからのご回答、 よろしくお願いいたします。

  • ExelのVBAでダブルクォートをセルに埋めるには?

    文字列の中にダブルクォートを入れるにはどうするのでしょうか? C言語であれば、\" と書くところですが。 ダブルクォートを2つ続けると、Exel上で見ると期待どおりに表示されますが、 テキスト形式に保存してからファイルをみると、ダブルクォート2つ入ってます。 エクセルでデータベース管理をし、VBAでそれを編集して、 HTMLを自動生成するようなツールを作成したいのですが、 ダブルクォートをテキストに吐き出せなくて困っています。

  • Exel2000VBA非表示の行が印刷されてしまう

    EXEL2000でVBAマクロ作成しています。 シートのある行を非表示にしました。そのまま印刷 プレビューを見ると確かに非表示になっています。 ところがマクロの実行をして印刷プレビューをみると 非表示の行が表示されています。 これを表示しないように印刷するにはどうすればよろしいか。

  • ExelのVBAでダブルクォートをセルに埋めるには?

    文字列の中にダブルクォートを入れるにはどうするのでしょうか? C言語であれば、\" と書くところですが。 Range("A1") = "<img src=""" & DataName & "."">" 、のように、 ダブルクォートを2つ続けると、Exel上で見ると期待どおりに表示されますが、 テキスト形式に保存してからファイルをみると、ダブルクォート2つ入ってます。 エクセルでデータベース管理をし、VBAでそれを編集して、 HTMLを自動生成するようなツールを作成したいのですが、 ダブルクォートをテキストに吐き出せなくて困っています。

  • エクセル VBA

    初心者です。 VBAを使って、ファイルを開かずにファイル本文の文字数を取得できないでしょうか。 出来ればテキスト形式・Word形式のファイルで使えると言いのですが・・・。 EXCELは2000です。 詳しい方、よろしくお願いします。

  • WordのテキストデータをEXELに

    Wordのデータ形式が左詰めで、 1行目 名前 2行目 住所 3行目 TEL . . . と言う様に1件のデータが3行で名前、住所、TELと規則的に並んでいます。このようなデータをEXEL等に読み込ませる時、 セルA  B    C 名前  住所  TEL . . . . . . に変換させたいのですが、どうすればよろしいのでしょうか。教えてください。

専門家に質問してみよう