• ベストアンサー
  • すぐに回答を!

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  か  し あ  あ こういうデータを、 「かしああ」のように、区切り無しでファイルに出力したいのです。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数862
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • imogasi
  • ベストアンサー率27% (4625/16542)

複数シートを対象に繰り返すのか。 AA = "Sheet1" BB = "C:\test.txt" はどういうようにデータを渡すのか。プログラムコードに組み込んでよいのか。エクセルの経験が少ないのか、ちょっと質問が荒っぽい。 A1セルにテキストファイル名があるとして 1回限りの作業 Sub test01() d = Range("A65536").End(xlUp).Row 'MsgBox d Open "C:\Documents and Settings\OTO\My Documents\" & Range("A1") & ".txt" For Output As #1 For i = 2 To d s = "" For j = 1 To 4 s = s & Cells(i, j) Next j Print #1, s Next i Close #1 End Sub ーー 結果 メモ帳 かしあう たねおか ーー Unicodeにはなら無いと思う。 上記は旧くからあるやり方なので指定は出来ないかも。 文字コード変換ソフトが無いかな。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答してしていただいたプログラムをほぼそのままでうまくいきました。 JANコード(13桁)商品名(40桁)メーカー名(10桁)取引先コード(5桁) 半角英数カナで値を作る。桁数に満たない値はスペースを使う。 文字列の位置で数値を判断するデータのようです。 123456789123ベンザエース100TB                  キッセイ    13244 たとえばこんな感じのデーターです。 どうもありがとうございました。

関連するQ&A

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

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

  • エクセルのマクロ

    あるエクセルのブック内のシートをdドライブに自動的にunicodeのタブ区切りテキストで保存するマクロを作成しています。コードは for i = 1 to 10 Sheets(i).Select f_name = "d:\" + Trim(Str(i)) + ".txt" ActiveWorkbook.SaveAs Filename:=f_name,_ FileFormat:=xlUnicodeText, CreateBackup:=False next i こんな感じです。 しかしこれを実行するとイルカが 'aaa.txt'にアクセスできません。ファイルは読み取り専用であるか、または読み取り専用の場所にアクセスしようとしています。または、サーバー上に保存されているドキュメントから応答がありません。 と言うメッセージを出し、そこでキャンセルボタンを押すと 実行時エラー'1004': 'SaveAs'メソッドは失敗しました。'_Workbook'オブジェクト というメッセージが出ます。さらにデバックを押すと、プログラムコードの ActiveWorkbook.......の行で止まります。 環境はwindows2000、excel2000です。 何か足りないコードがあるのでしょうか? よろしくお願いします。

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

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

  • 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になっています。 大変困っています。どなたかお助けください。

  • (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 **************************************************************** ご指導お願いします。

  • エクセルからCSVファイルに出力したい?

    エクセルのシートからマクロを使ってCSVファイルに出力したいです。 そこで調べたのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2376607 こちらの質問で以下のようなコードが参考になりました。 Sub Macro1() Dim myBook As String myBook = ActiveWorkbook.FullName myBook = Left(myBook, Len(myBook) - 3) & "CSV" ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=myBook, FileFormat:=xlCSV ActiveWindow.Close False End Sub このコードではCSVのファイル名がエクセルシートのファイル名になってしまいます。 今回の質問ですが、CSVファイルを違う名前で保存するにはどのようにすればいいのでしょうか? (CSVファイルの名前は常にabc.csvで保存するものとします)

  • VBAでタブ区切りテキストの保存に関して

    VBAでタブ区切りテキストの保存のプログラムを書くためには Application.DisplayAlerts = False Sheets("sheet01").Copy ActiveWorkbook.SaveAs Filename:="D:\test.txt", FileFormat:=xlText ActiveWindow.Close Application.DisplayAlerts = True という記述が一般的に使われます。 いま、あるプログラムでexcelシート上に title subtitle 001  002  003 333  444  555 666  777  888 ような内容が書き込まれたものをタブ区切りで出力したいのですが、 上記の方法で出力すると、 titleやsubtitleと書かれた行の右側にも空白のタブ区切りが一緒に保存されてしまいます。 あるプログラムで読み込ませるためには、 この二つの行のタブ区切りをいちいち消す必要があり、毎回手作業でするのは面倒です。 VBAでこのようなタブ区切りの有無を行ごとに指定して保存するようなことは可能でしょうか?

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

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

  • VBからエクセルを起動。そのあとエクセルを終了

    教えてください。 VBからエクセルを起動します。 そのあと、エクセルのシートの上にデータを貼り付けます。そして、エクセルを終了します。 しかし、エクセルが終了しません。 タスクバー上のエクセルをクリックすると終了します。 どうして、このような現象が起こるのかわかりません。 教えてください。 下記に同様のサンプルを書きました 誤記入があるかも知れませんが このような感じのプログラムです。 以上、よろしくお願いします。 public sub test Dim XApp as Excel.Application Dim nfilename as string Dim xlBook As Object Dim xlSheet As Object ' エクセルを起動 Set xlApp = New Excel.Application nfilename ="AAAA.xls" ' 指定されたファイルを開く Call xlApp.Workbooks.Open(nfilename) Set xlBook = xlApp.ActiveWorkbook Set xlSheet = xlBook.Worksheets(1) 'フォームを貼り付ける xlSheet.Range("a1").PasteSpecial      'ファイル名の作成 Filename="BBBB.xls" '保存 ChDir "C:\" xlBook.SaveAs Filename:=Filename,FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Set xlSheet = Nothing xlBook.Close True Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End sub

  • VB6.0でTextファイルをExcel出力

    お世話になります。 VB6.0でTextファイル(カンマ区切りのデータが入っているもの)をExcelに出力するものを作成しました。 基本的に読込んだファイルをArrayで型を指定してExcelに出力する形です。 ですが、印刷するときにA4横に収まらない長さになってしまったので、 Textファイルの1行のデータをExcelには2行にして出力させることは可能ですか? Textファイルのデータはこんなのです。 XXXX,SS,SS,AA,DD,WW,Fed,fk,aaa,aqee このような形で数百件入っています。 何か参考になりそうなものがあったら教えてください。 よろしくお願いします。