エクセルデータをテキストファイルに出力する方法

このQ&Aのポイント
  • エクセルのデータをテキストファイルに出力する際に、改行が正しく表示されない問題が発生しています。改行を正しく表示するためのマクロの組み方についてアドバイスをいただきたいです。
  • エクセルデータには同一セル内に改行させたデータがあります。テキストファイルに出力する際に、改行を正しく表示する方法について教えてください。
  • エクセルのデータをテキストファイルに出力する際に、改行がうまくできない問題があります。マクロを使用して改行を正しく表示する方法についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

ワークシートの内容をテキストファイルに書き込む際に、テキストファイルでは改行が”↑”と表示されるだけで困っています

エクセルのデータをテキストファイルに出力させたいのですが、テキスト出力の際に"↑"が表示されるだけで改行がうまくできません。 マクロの組み方でアドバイスをいただけないでしょうか? ------------------------------ <↓具体的に、、、、。> ・エクセルデータは、同一セル内に改行させたデータがあります。      列A   列B   行1 No,1  1-111111              1-1111       行2 No,2  2-2222    ←セル"B1"と"B2"のデータを     2-22222    テキストでも改行させて表示したい。 ・テキストでは、下記のように出力させたい ◆No,1 1-111111 1-1111 ◆No,2 2-2222 2-22222 ---------------------- <↓私が試しているコードです。> 'Test.txt 開く Open "C:\Test.txt" For Output As #File_Number '列Aのセルに空白文字列が入るまで、処理を繰り返す i = "3" Do While Worksheets("sheet1").Cells(i, 1) <> "" Print #File_Number, "◆" & Cells(i, 1) Print #File_Number, Cells(i, 2) i = i + 1 Loop 'Test.txt を閉じる Close #File_Number このマクロだとテキストでは ◆No,1 1-111111↑1-1111 ◆No,2 2-2222↑2-22222 となります。 アドバイスの程、よろしくおねがいします。

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (737/5626)
回答No.1

上矢印は &H0A と言う文字コードのようです。 これは「半端な改行」だとでも思ってください。 詳しい説明は省きますが、 「半端な改行」を「普通の改行」に変換すればいいと思います。 以下のように変更してみてください。 Print #File_Number, Replace(Cells(i, 2),vbLf,vbCrLf) OSのバージョンや、エクセルのバージョンでうまくいかないかも知れません。 私の方では確認していますので、うまくいかなければお知らせください。

rab195
質問者

お礼

dell_OKさん。ありがとうございます。 さっそく試して、ばっちりOutputできました。 私の問題、無事に解決です。 アドバイスありがとうございました。

関連するQ&A

  • EXCELVBAでデータをテキストファイルで出力したいと

    EXCELVBAでデータをテキストファイルで出力したいと考えています。 ***************************** 作成したVBA ***************************** Sub test_Click() Dim fNAME As String fNAME = "c:\test.txt" Open fNAME For Output As #1 i = 1 Print #1, "<test=" & Cells(1, i) & "," & Cells(2, i) & "," & Cells(3, i) & "," & Cells(4, i) & "," & Cells(5, i) & ">" Close #1 '閉じる End Sub ***************************** エクセルの値 ***************************** A列 1 2 3 4 5 ***************************** 出力されたテキストファイル ***************************** <test=1,2,3,4,5> このようになっていますが、 エクセルが A列 1 2 のように、2個しかないと、 <test=1,2,,,> のようになってしまいます。 <test=1,2> ↑のようになるように、エクセルの値に応じて、 「,」が出力しないようにしたいです。 どうしたらよいのでしょうか。 よろしくおねがいします。

  • セル内改行をそんままテキスト出力するには?

    セル内で「Alt」+「Enter」で改行されたデータを VBAでテキストファイル(*.txt)に出力したいのですが、 そのままだと、セルの内容が1行になってしまいます。 どのようにすれば、セルで改行したようにテキスト内で改行できるのでしょうか?

  • VBAでtextファイルを作成

    マクロ・VBA初心者です。 ご教授お願いします!! 経費精算のExcelデータを画像のような「"",]で区切ったテキストファイルを作成するマクロを作りたいと考えてます。 完成イメージ:マクロのボタンを押すとテキストファイルの形でフォルダに作成される。もしくは、マクロボタンを押すとテキストファイルの形で区切ったものが表示されるものを作りたいです。 *経費精算データに関してA列からX列まであり、集計データにより列にデータを埋めていく作業が入っております。なので、A列からX1列まででデータが記入されている範囲で集計できるようにしたいと考えております。 現在は、勉強しつつ組み立てた結果、 CSVのExcelファイルをフォルダの中に作成できるようになりました。 (コードは下記に記載します) ただ、テキストファイルが作れるコードができていないのが問題です。 このコードをどのように変えればよいのか? もしくは、別のコードで出来るようならば教えていただけると嬉しく思います。 宜しくお願いします。 ______________________________ 〈コード〉 Option Explicit Sub ExcelファイルCSV形式作成() '変数宣言 Dim filePath As String Dim i As Long Dim maxRow As Long Dim fileNo As Integer '初期値設定 filePath = ActiveWorkbook.Path & "\経費計算エクセル(CSV保存).csv" maxRow = Range("A1").End(xlDown).Row '最終行取得 fileNo = FreeFile 'FreeFile関数で使用可能なファイル番号取得 'ファイル開く Open filePath For Output As #fileNo '最終行までループ For i = 1 To maxRow '列の数は決め打ち Write #fileNo, Cells(i, 1), Cells(i, 2), Cells(i, 3), Cells(i, 4), Cells(i, 5), Cells(i, 6); Cells(i, 7), Cells(i, 8), Cells(i, 9); Cells(i, 10), Cells(i, 11), Cells(i, 12); Cells(i, 13), Cells(i, 14), Cells(i, 15); Cells(i, 16), Cells(i, 17), Cells(i, 18); Cells(i, 19), Cells(i, 20), Cells(i, 21); Cells(i, 22), Cells(i, 23), Cells(i, 24) Next i 'ファイル閉じる Close #fileNo End Sub ______________________________________ 以上です。 本当に困ってます。よろしくお願します。

  • Excelで複数のテキストファイルを1枚のシートに

    Excelで複数のテキストファイルを1枚のシートに追加したいのですが可能でしょうか? VBAや別ソフトを複数使ってもかまいません。 2列のテキストファイルが複数ありA列目は共通でB列目がそれぞれ異なります。 data01.txt、data02.txt…と50ぐらいのファイルがあり、それぞれ A  B 10 1.24 20 2.56 30 2.46 :  : となっています。これをひとまとめにして A      B     C ・・・ data01  data02   data03・・・ data50 10     1.24    1.35 ・・・ 2.24 20     2.56    2.22 ・・・ 1.34 30     2.46    3.23 ・・・ 5.45 :       :      : といった表にしたいのです。 お願いします。

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • エクセルにてテキストファイル読み込みでエラー  

    いつもお世話になっております。 テキストファイル (test.txt)をエクセルマクロにてセルへの読み込みを したいのですが、なぜか エラーになります。 Cells(n, 1) = buf  でエラーのようです。 理由がわかりません。 教えてもらえないでしょうか 普通の文章なら読み込みできるのですが =  を使っているとエラーがでるようです。 test.txtの画像を添付します。 エクセルのマクロの内容は次の通り Sub テキストファイルをセルに転記() Dim buf As String, n As Long Open "C:\Users\a\Desktop\test.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf n = n + 1 Cells(n, 1) = buf Loop Close #1 End Sub

  • ExcelVBAのマクロを使ってテキストファイルの文字を読み込む

    お世話になります 表題のとおりなのですが、ExcelVBAのマクロを使ってテキストファイルの文字を読み込むマクロの書き方を探しています。 具体的には、ExcelVBAで作ったボタンを押すと、あるテキストファイル(TEST.txt)に書かれている文字列をExcelVBAで取得して、それをセルに表示させるものです。 VBA関連のサイトがあまり無く困っています、宜しくお願いします。

  • ワークシートをUTF-8のテキストファイルとしてエクスポートする方法

    ワークシートをUTF-8のテキストファイルとしてエクスポートする方法 こんにちは。VBA初心者です。 このサイトで質問しながら、以下のようなコードを書いてみました。 しかし最後の(3)の手順でS-JISになってしまうので、UTF-8で読み込んだ意味がなくなってしまいます。 このページ「http://msdn.microsoft.com/ja-jp/library/cc408235.aspx」を見て、ADODB.StreamのWriteTextを使えばいいのかなとも思いましたが、どうやら違うみたいです(というか使い方がよく理解できないです)。 読み込みから出力までUTF-8で行うにはどうしたらよいでしょうか。 どうかよろしくお願いします。 下記のコードの処理内容: 1)ADODB.Streamを使用してUTF-8のテキストを新規ワークシートにインポート(同時に「//」でコメントアウトされた行を削除 2)ダミー文字挿入()プロシージャで「@:TEXT_」で始まる行以下に2行連続して空行があった場合は、[dummy]という文字列を挿入 3)Openステートメントでテキストファイルを作成し、そこにWriteステートメントでワークシート内のテキストを書き込む Sub test() Dim mystream As Object Dim i As Long Dim tempText As String Dim myFileNo As Integer Const adTypetext As Long = 2 Const adReadLine As Long = -2 Set mystream = CreateObject("ADODB.Stream") With mystream .Type = adTypetext .Charset = "UTF-8" .Open .LoadFromFile ("D:\test\sample.txt") End With Worksheets.Add after:=Worksheets(Worksheets.Count) i = 1 Do Until mystream.EOS Cells(i, 1).Value = mystream.ReadText(adReadLine) If Cells(i, 1).Value Like "//*" Then Cells(i, 1).Delete End If i = i + 1 Loop mystream.Close Set mystream = Nothing Call ダミー文字挿入(i) myFileNo = FreeFile Open "D:\test\sample_02.txt" For Output As #myFileNo For i = 1 To i + 1 Write #myFileNo, Cells(i, 1).Value Next i Close #myFileNo End Sub ============================= Sub ダミー文字挿入(i As Long) Dim myCellUnit(2) As String For i = 1 To i If Cells(i, 1) Like "@:TEXT_*" Then myCellUnit(0) = Cells(i, 1).Value myCellUnit(1) = Cells(i + 1, 1).Value myCellUnit(2) = Cells(i + 2, 1).Value If myCellUnit(1) = "" And myCellUnit(2) = "" Then Cells(i + 1, 1) = "[dummy]" End If End If Next End Sub

  • エクセルの各シートに複数のテキストファイルを取り込むには?

    はじめまして。データの整理で困っています。 お力をお借りできたらと思います。 複数のテキストファイルがあります。 これらをエクセルのシートに取り込み、 各シート名を取り込んだファイル名としたいのですが、 何か良い方法はないでしょうか? 例えば、 No1_1001_1.txt、No1_1001_2.txt、No1_1002_1.txt、... というファイル群を Data_No1.xls のSheet1 <- No1_1001_1.txt Data_No1.xls のSheet2 <- No1_1001_2.txt Data_No1.xls のSheet3 <- No1_1001_3.txt ... というようにしたいのですが。よろしくお願いします。

  • MS Office Excel 2003でテキストデータファイルを読み

    MS Office Excel 2003でテキストデータファイルを読み込む方法 1111.txt 2222.txt 3333.txt というテキストデータファイルがあり、中身は添付画像の様になっています。 (テキストファイルは同じフォルダに格納されています) このテキストデータをExcelに読み込みたいのですが、以下の様な動作をして欲しいと思っています。 (1)セルA1にテキストデータファイルのファイル名(拡張子は省く)を入れる (2)セルA2から下に、添付ファイルのA列のデータが入り、セルB2から下にE列のデータが入る (3)セルA1に別のファイル名を入れると、そのファイルのテキストデータに切り替わる このような事は可能なのでしょうか? もし可能であれば教えて下さい。 よろしくお願いします。