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

このQ&Aのポイント
  • EXCELのデータを固定長で保存するためテキスト(スペース区切り)の形式で保存したのですが、結果をメモ帳で見てみると途中(237文字)で改行?されていました。
  • 各行先頭から26個のセルに文字や数字がはいっており、セル幅は17前後です。1レコード1行にするにはどうすればよいでしょうか。
  • 困っております。よろしくお願いします。
回答を見る
  • ベストアンサー

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

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

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

  • ベストアンサー
回答No.1

>26個のセルに文字や数字 混在ですよね。 SaveAs だけだときついかも知れません。 独自でバイト長を求めてコードを書くのはOKですか? それであれば、履歴で バイト長 FreeFile Excel.Application をキーワードにして検索したら、全てここ掲示板で解決できると思いますが、、、 TAB区切りではダメなのですか?SaveAsで済みますよね。 せっかくEXCELを使っているのだから、あまりダラダラしたコードを書かないで済む手法をとった方が、面倒が無いと思いますよ。

chun-koro
質問者

お礼

掲示板を参考にバイト長を求めてコードを書き、ばっちり出来ました。 もう、感謝感謝感謝です。 ありがとうございました。

関連するQ&A

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

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

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

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

  • エクセル VBA 保存したCSVファイルについて

    いつもお世話になっています。 早速ですが カンマ区切りのテキストファイルをカンマ区切りで読み込んだあと変更を加え ActiveWorkbook.SaveAs Filename:="Book2.csv", FileFormat :=xlCSV, CreateBackup:=False で保存したものを メモ帳などで開いた時に 不要な箇所にカンマの不要な箇所に沢山カンマが付いてしまいます。 M列まであるのでその分の空白もカンマ区切りで保存されてのだと思うのですが これを、不要な部分の空白を除いた形で保存する方法は無いでしょうか? どうぞよろしくお願いします

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

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

  • ファイル名に変数を割り当てたい

    EXCEL VBAで ファイル名に変数を割り当てて保存したいのですが、 うまく行きません。どこがおかしいのか教えてください。 C\サンプル\見込200704 を変数で割り当てて保存したい。 バージョン301 = "200704" 四月 = "C:\サンプル\見込" & "バージョン301" Range("A1").Select ActiveWorkbook.SaveAs Filename:=四月, _ FileFormat:=xlCSV, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close False

  • ファイルの保存先のパス

    マクロでデスクトップに保存させたいのですが、 ActiveWorkbook.SaveAs Filename:= _ "D:\Documents and Settings\●●●\デスクトップ\Book1.xls", FileFormat:=xlNormal _ , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False の●●●のように、私のユーザー名が入ります。 このファイルは色々な人に使ってもらいたいので、 LOCALみたいな意味合いの言葉を入れたいのですが、 なんと入れたら良いでしょうか? ご存知の方いらっしゃいましたら宜しくお願いします。

  • Excel/VBAのファイル保存

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

  • ExcelVBAでテキスト保存

    ExcelVBAを使って、ワークシートをテキストファイルに保存しようとしています。 CSV形式で保存するときは、   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".csv", _     FileFormat:=xlCSV, CreateBackup:=False でtest.csvに保存できますが、 単純にテキストファイルとして保存したいときに   Sheets("test").Activate   ActiveSheet.SaveAs Filename:=ActiveSheet.Name & ".txt", _     FileFormat:=xlText, CreateBackup:=False としても、実行時に下記のエラーになってしまいます。   実行時エラー '1004'   アプリケーション定義またはオブジェクト定義のエラーです。 どうしたらよいのでしょうか? また、CSVで保存した時も開いているファイルがtest.csvに変わってしまいますが、できれば、開いているファイルは元のファイルのままでシートだけを保存するにはSaveAsメソッドではなく、他のメソッドを使うのでしょうか? (hogehoge.xlsのtestシートを保存してもhogehoge.xlsが開いたままにしたい) 以上、宜しくお願いします。

  • エクセル テキスト形式の名称変更保存

    みなさまお世話になります 早速ですが、標記の件です csv形式になっているテキストファイル(拡張が異なりますset)をエクセルで カンマ区切りにて開いた後 保存しようとした場合 上書き保存であれば、拡張も元々の拡張子で保存されるのですが マクロを使用してファイル保存をしようとすると ActiveWorkbook.SaveAs Filename:=ActiveSheet.Name, FileFormat:=xlCSV, CreateBackup:=False 拡張子がCSVになってしまいます。 それを元々の拡張にて保存を行いたいのです。 またファイル名が長いので 変更をかけた後  シート名の一部を変更して保存したいためにActiveSheet.Nameを 使用しています どうぞよろしくお願いします。

  • VB:Excelのデータを、区切りなしのtextファイルで出力したい

    Dim AA, BB As String AA = "Sheet1" BB = "C:\test.txt" Sheets(AA).Select ActiveWorkbook.SaveAs Filename:=BB, FileFormat:=xlUnicodeText 「FileFormat:=xlUnicodeText」 ここの指定を変更すればいいように思うのですが、区切り無しのデータにするにはどうしたらいいのでしょうか。 たとえば、    A  B  C  D 1  か  し あ  あ こういうデータを、 「かしああ」のように、区切り無しでファイルに出力したいのです。

専門家に質問してみよう