- ベストアンサー
VBAでのテキストデータ追記
- VBAを使ってデータをテキストファイルに追記したいと考えています。
- A列だけでなく、A列からF列までのデータを追記させたいです。
- 具体的な方法がわからないので、教えていただけますでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
2点確認 その1. >データをテキストファイルに追記したい 提示されたサンプルマクロは、Excelのデータをファイル名を付けてテキストファイルとして保存するもので、既存のテキストファイルに追記するものではないのですが 目的は a. テキストファイルとしての出力? b. 既存のテキストファイルへの追記? その2. >A列からF列までのデータを追記させたい a. A列からF列までの内容を連結したものを一行として扱いたいということでしょうか? b. A列からF列までの内容をセル単位で一行として扱いたいということでしょうか? 1-a,2-aならば ------------- ' A列内容をレコードにセット(先頭は2行目) strREC = Cells(GYO, 1).Value ' (4) ' レコード件数カウンタの加算 ------------- この部分を ------------- ' A列内容をレコードにセット(先頭は2行目) strREC = "" ketugo = 1 For ketugo = 1 To 6 strREC = strREC & Cells(GYO, ketugo).Text Next ketugo ' レコード件数カウンタの加算 ------------- こんな感じに変更することで対応可能と思われます やりたいことが違っていたらごめんなさい
その他の回答 (1)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
ここが参考になる。 VB テクニック編16 - Excel XLS シート読み込み、XLS シート書き込み http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t16.htm <<適当にいじったサンプル>> 'XLSシートのデータ(セル)をCSVファイルに変換出力 Option Explicit Sub XLS2CSV() Const xName = "D:\tmp\test.xls" Const xName2 = "D:\tmp\test.csv" Const xFrom = "A" Const xTo = "F" Dim exl As Object Dim xBuff As String Dim xLast As Long Dim kk As Long Dim nn As Long Set exl = CreateObject("Excel.Application") exl.Application.Visible = True exl.Application.Workbooks.Open Filename:=xName Open xName2 For Output As #1 Len = 32000 xLast = exl.Cells(Rows.Count, "A").End(xlUp).Row For nn = 1 To xLast xBuff = Empty For kk = 1 To 6 xBuff = xBuff & Chr(&H22) & exl.Cells(nn, kk) & Chr(&H22) & "," Next If Right(xBuff, 2) = (Chr(&H22) & ",") Then xBuff = Left(xBuff, Len(xBuff) - 1) End If Print #1, xBuff Next Close #1 exl.Application.DisplayAlerts = False exl.Application.Quit End Sub
お礼
なるほど!!こういう処理もできるんですね。 勉強になります。 参考サイトも非常に勉強になりました。 ありがとうございました。大変助かりました。
お礼
すばやい返信ありがとうございます。 素晴らしいですね。実際支持の通りしましたら 結合できたテキストファイルを排出できました。 その1のケースでてっきり私は追記する Append関数を 使ったものを質問文に乗せたと思っていたのですが 書き出し用のものを載せてしまったようです。 申し訳ありませんでした。追記する方法は問題 なくできました。 お時間ありがとうございました。