• ベストアンサー

VBAのFileFormatで悩んでいることがあるので助けていただけないでしょうか?

米沢 栄蔵(@YON56)の回答

回答No.3

私は、エクセルファイルを通常のテキスト形式で保存する方法として次のようにしています。参考になるかな? BB = "\\Srv03\建物修繕履歴管理システム01\データ保管庫\データ\" & AA & ".txt" 'AAは保存するファイルの名前 Open BB For Output As #11 '#11は、単に私が11という数字が好きなだけ E = 0 For A = 1 To 4 'Aはシート番号 For D = 1 To C 'Dは行番号 E = E + 1 'Eはテキストファイルのデータ行数(チェックを簡単にするための一工夫) Write #11, E, Sheets(A).Cells(D, 3), Sheets(A).Cells(D, 4), Sheets(A).Cells(D, 5), Sheets(A).Cells(D, 6), _ Sheets(A).Cells(D, 7), Sheets(A).Cells(D, 8), Sheets(A).Cells(D, 9), Sheets(A).Cells(D, 10), _ Sheets(A).Cells(D, 11), Sheets(A).Cells(D, 12), Sheets(A).Cells(D, 13), Sheets(A).Cells(D, 14), _ Sheets(A).Cells(D, 15), Sheets(A).Cells(D, 16), Sheets(A).Cells(D, 17), Sheets(A).Cells(D, 18), _ Sheets(A).Cells(D, 19), Sheets(A).Cells(D, 20), Sheets(A).Cells(D, 21), Sheets(A).Cells(D, 22) Next D 'C列からU列までデータが入っています。(空白を含め) Next A 'C列からU列までの表示をもっとスマートにしたかったんだが。 保存速度は、エクセルファイルを変更保存する場合と同じくらいです。

関連するQ&A

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

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

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

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

  • 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が開いたままにしたい) 以上、宜しくお願いします。

  • (VBA)書式が変更されてしまいます

    ↓SaveAsで保存すると書式が変更されてしまいます。 ActiveWorkbook.SaveAs FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close False ネットで↓の回避策を見つけたのですがうまくいきません。 **************************************************************** Sub CSV_Save() 'Sheet1をCSV形式で保存します。 With ActiveWorkbook.Sheets(1) 'A1:A10まで日付あるいは通貨設定のデータが入っているとします。 For Each rng In Range("A1:A10") 'テキスト文字列に変更します。 rng.Value = "'" & rng.Text Next rng End With ActiveWorkbook.SaveAs FileName:="C:\test.csv", FileFormat:=xlCSV End Sub **************************************************************** ご指導お願いします。

  • Excel : OpenTextメソッドが正常に動作しないのはなぜ?

    下記のようなマクロを作りました。 Sub sample() FileName = ThisWorkbook.Path & "\test.txt" Workbooks.OpenText FileName:=FileName, Comma:=True ActiveWorkbook.SaveAs FileName:=FileName, FileFormat:=xlCSV ActiveWorkbook.Close End Sub test.txt には次のテキストが書かれています。 "あ"," あ " 上記のマクロを実行すると、テキストの中身は次のようになってしまいます。 """あ"",""",あ,"""" 本来であれば、テキストの内容には変化が全くないはずだと思います。 原因が不明なのですが、マクロの動作確認をしたところ、 OpenTextメソッドでテキストを開いたときにすでに、 カンマの位置で区切られてセル内に入っていませんでした。 どのようにすればOpenTextメソッドは希望する動作をしてくれるのでしょうか?

  • Excel97VBAで、カレントディレクトリを取得する方法

    Excel97のVBAで、ワークブックの保存ボタンを作成しています。 1.xlsというファイルを、一旦、1.prn(スペース区切りテキスト)でデスクトップに保存し、再度元のディレクトリの1.xlsに上書き保存する。というマクロを作っています。 SaveAsでFileFormatを変更するところまではわかったのですが、元のファイルに上書きする方法がわかりません。 一度、カレントディレクトリを取得して、同じ名前を付けて保存する、という方法になるのではないかと思いましたが、カレントディレクトリの取得方法がわかりません。 宜しくお願いします。

  • VBAでのCSV保存

    VBAでExcelのデータを保存したく、 ActiveSheet.SaveAs _ Filename:=xxxxx, _ FileFormat:=xlCSV といった感じにしています。 ほぼこの方法で問題ないのですが、なぜか変形してしまう データがあります。 文字列として2004/6/18といった形で入力しているデータが 6/18/2004のように変化してしまいます。 FileFormatを指定しなければ、2004/6/18のままですが、 それではCSVファイルになりません。 どうしたらいいのでしょうか?

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • VBAでエラーが出ます

    セルの値を変数に格納して、それをブック保存時に使いたいのですが上手くいきません。 Sub サンプルブック保存() Dim myfile As String myfile = workbooks("サンプル").Worksheets("sheet1").Cells(2, 9) workbooks.Add ActiveWorkbook.SaveAs Filename:="\\C:\フォルダ\" & myFile & ".xls" End Sub エラーメッセージは、 実行時エラー'1004': SaveAs'メソッドは失敗しました'_Workbook'オブジェクト と出ます。 非常に困ってます。 教えてくだされば幸いです。

  • 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 _ を使うということを、なんとなく覚えておりますが、うまくいきません。注意点等をご教示頂ければと思います。 以上 よろしくお願い致します。