• ベストアンサー

【HELP!!】Excelから保存したtxtデータに「改行コード」を入れない方法(VBA)

あるデータをExcelマクロを使って生成しています。 txtに保存するときに、120バイトで揃えたいのですが、データに改行コードが入る為120バイトを超えてしまうようです。 データは最大200行。 Excelのセルで生成されたデータはそのままに、改行コードのみをtxtの段階で削除する方法を教えてください! とっても困っています・・・ ちなみに・・・ ActiveWorkbook.SaveAs Filename:="C:\MIKAZUKI.txt", FileFormat:=xlUnicodeText _ , CreateBackup:=False が今のコードです。 不足な資料等があればジャンジャン送ります。

  • jenga
  • お礼率0% (0/29)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

固定長120バイトのデータを、改行コードなしで羅列するという意味ですか。COBOLプログラムで読み込むのでしょうか? SaveASメソッドではFileFormatプロパティで「改行なし」を選択できないと思います(できたら不勉強ですが)。WIRTE命令かFSOオブジェクトを使用すれば可能です。 貼り付けたURLを参考になさってください。私がなまじマクロを書くより的確な例が掲載されています

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_055.html

その他の回答 (1)

回答No.1

>txtに保存するときに、120バイトで揃えたいのですが、データに改行コードが入る為120バイトを超えてしまうようです。 >データは最大200行。 矛盾していませんか?改行コードがあるから「行」が発生するのです。 改行コードが無ければ一行に最大120*200=24000バイトの文字がずらーっと 並ぶだけですよ。 そのテキストファイルを何のために使うのでしょう?

jenga
質問者

補足

実は、銀行のFB(ファームバンキング)用のデータを作っています。 実際は体裁よく並んでほしいのですが・・・(市販の会計ソフトで出力すると体裁よく並んで且つFBでもエラーがなく送信できます) すいません。説明不足で・・・

関連するQ&A

  • Excel VBA ファイルの置換確認メッセージ

    Excel VBAでファイルを生成するマクロを組んでいます。 同一パス・ファイル名が存在する場合、 「~は存在します。上書きしますか?」と確認メッセージが表示されますが、このメッセージを出力させなくするには、どうコーディングすればよいでしょうか? 以下はファイル生成の部分です。 ActiveWorkbook.SaveAs Filename:=strFileName, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Application.WindowState = xlMinimized 想像ですが、ここに何らかのコマンドを追加するのでしょうか? よろしくお願いします。

  • ExcelのマクロでCSVファイルを開くと遅いのですが

    ExcelのマクロでCSVファイルを開くと遅いのですが速く開く方法はありますか? 普通にファイル-開くに比べてかなり遅いです。 下記のVBAで記述してあります。 Workbooks.Open Filename:=fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close savechanges:=False

  • エクセルでのhtm保存

    エクセルでマクロでhtm保存するようにしています。 保存したときにアクティブだったシートで保存されず、 勝手にsheet1が選択されて保存されてしまいます。 保存の際になにか設定があるのでしょうか。 保存した際のアクティブなシートが選択された状態で保存がしたいです。 皆さんお願いいたします。 office 2003 XP マクロ部分(シートを選択するプログラムはありません) ActiveWorkbook.SaveAs Filename:= _ "\\サーバー\OK.htm", _ FileFormat:=xlHtml, ReadOnlyRecommended:=False, CreateBackup:=False

  • EXCEL VBAでカンマ区切りテキストファイルに変換する方法

    EXCELで作成したシートをVBAでカンマ区切りテキストファイル(CSVファイルではなく)に変換する方法を教えてください 下記のプログラムではテキストファイルに変換されますが、カンマ区切りになりませんでした。 Sub Samp() ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\aa.txt", FileFormat _ :=xlText, CreateBackup:=False End Sub

  • EXCELから固定長テキストファイルにうまく書き込めない

    EXCELのデータを固定長で保存するためテキスト(スペース区切り)の形式で保存したのですが、 結果をメモ帳で見てみると途中(237文字)で改行?されていました。 各行先頭から26個のセルに文字や数字がはいっており、セル幅は17前後です。 1レコード1行にするにはどうすればよいでしょうか。 困っております。よろしくお願いします。 実際には次のコマンドで保存しました。 ActiveWorkbook.SaveAs Filename:=file_path & filename_txt1, _ FileFormat:=xlTextPrinter, CreateBackup:=False

  • EXCEL確認メッセージを出さずに保存したい

    恐れ入りますが、ご教示お願い致します。 質問(1) EXCELファイルを (1)特定の名前で (2)CSVファイルにして 保存をしたいと考えています。次のマクロを書いたところ、”CSVへの変更を保存しますか?”確認メッセージがでます。 確認メッセージを出さずに、保存するためには、どのように記述したらよいでしょうか? With ActiveWorkbook .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV .Close End With (2)改行するためにはどうしたらよいでしょうか? .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal, FileFormat:=xlCSV を、次のように改行させたいのです。 .SaveAs Filename:=Mypath & "\" & Mybook & MYsireal,      FileFormat:=xlCSV _ を使うということを、なんとなく覚えておりますが、うまくいきません。注意点等をご教示頂ければと思います。 以上 よろしくお願い致します。

  • Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル

    Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル形式で表示するVBAで組まれたエクセルがあります。 Bに読み込まれたエクセルだけを、デスクトップに保存したいのです。 ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False 以前は動いていたのですが、しばらくぶりに動かしたら動かなくなってしまいました。 以前はOFFICE2000か2003で今は2007になっています。 大変困っています。どなたかお助けください。

  • Excel/VBAのファイル保存

    いつもここでは大変お世話になっています。 以下のように名前をつけて保存をしているのですが、 同名のファイルがあった場合でも上書き確認せずに上書きをさせる方法を教えて下さい。 お願いします。 ActiveWorkbook.SaveAs Filename:= _ "\\PC名\ディレクトリ名\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False

  • マクロが思い通りに動きません

    エクセルでマクロを使いボタンを 作りました。ボタンを押すとHDDとDVDに保存される仕組みになっています Sub DVD() ChDir "E:\" ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyy-mm-dd(hh時mm分ss秒)"), FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub Sub HDD() ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\***\デスクトップ\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub これだとDVDへ保存が上手くいきません。DVDからエクセルを開いて使えば問題ないのですが、デスクトップから開くと日付入りのデータがデスクトップに保存されてしまいます。 どうやって書き換えたらいいでしょうか

  • エクセルのマクロでテキストを生成すると日付の表示書式が変わってしまう

    エクセルのシートをマクロを実行してテキストファイルを生成します。 マクロの記述は以下の通りです。 保存 ChDir "C:\Documents and Settings\All Users\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\All Users\デスクトップ\YA-SWK.txt", FileFormat:= _ xlCSV, CreateBackup:=False '終了 Application.Quit End Sub 元データのエクセルのシートに「2006/9/1」と入力されているセルがあるのですが、マクロを実行して生成されたテキストファイルでは「9/1/2006」と日付の表示順序が変わってしまいました。 この原因は何であるのかつかめません。 よろしくお願いします。