• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:新規CSVデータの2行目以下を追加するVBA)

VBAを使って新規CSVデータの2行目以下を追加する方法

m5048172715の回答

回答No.1

私はコードを0から書けないので、毎回、マクロ記録した1つの操作を関数に加工、その関数をストック & 再利用することで全部やってきたので、今回もそれと同じ方法で行けるはずですよ。 変更箇所はファイル名くらいでしょう。

ketae
質問者

お礼

ありがとうございます マクロ操作だと修正が必要な箇所が多くでたので、専門の方に聞く方が早く、正確かなと思いました

関連するQ&A

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

  • VBA でCSV集計

    VBAをはじめて1ヶ月のものです。 VBAの集計ツールを作成していますが 思うようにいかず、お知恵をお借りしたいと考えています。     abcというフォルダ配下に以下のように4桁の日付を示す フォルダが日付毎にあります。(いくつあるかはわかりません。) さらにその配下にいくつかのcsvファイルがおいてありますが aaa.csvというcsvのみ抽出し 最終的には合体.csvのような集計CSVを作成したいと考えています。 以上よろしくお願いいたします。 (1) abc → 0812フォルダ <aaa.csv>     A列     B列    C列 1行 100     200    8月12日                       2行 100     100 3行 200     200 4行 300     100 5行 100     100 6行 200     200 7行 400     100 8行 100     100 (2)abc → 0813フォルダ <aaa.csv>      A列     B列     C列 1行   0      300    8月13日              2行 100      100 3行 100      200 4行 100      200 5行 100      200 6行 300      200 7行 300      400 8行 200      100 ↓ (3)<合体.csv>     A列     B列      C列     D列     E列     F列     G列    (日付)  (A1~A4計)(A5~A8計)(合体B+C)(B1~B4計)(B5~B8計)(合体E+F) 1行 8月12日   700      800     1500     600     500     1100 2行 8月13日   300      900     1200     800     900     1700

  • VBA csvを100万行ずつ各シートに読み込み

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。 環境:Win7 64bit SP1、 エクセル2010 でございます。  「1000万行×3列」のCSVファイルデータを、100万行ずつ シート1~10に振り分けたく悩んでおります。 ・エクセルは100万行しかありませんので、「一旦開いてから各シートに分割」という方法が使えませんし、 ・またReadLineいたしますと(1行ずつの方法しか存じませんので)時間がかかりそうですし、 何よりcsvファイルのカンマ記号も含め1行全てが、エクセルのひとつのセルに入ってしまうのでは、などと考えております。  何か良さそうな方法を思いつかれる方はおられませんでしょうか。 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • VBAでの100万行以上のデータの取り込み

    どなたかご教示お願いいたします。 VBAで100万行以上のCSVデータの取り込みは可能でしょうか? 初心者なのでファイルを開いてセルに入れてから範囲を指定し配列に 取り込み処理しておりましたが100万行以上だとデータがシートから出てしまいます。 なのでエクセルに展開せずに配列に取り込むなどということはできるのでしょうか? もし可能であればあつかましいのですが、A列の120万行データを配列に取り込むサンプルをご教示いただけるとありがたいのですが・・・ よろしくお願いいたします。

  • csvのデーターファイルから任意の行をエクセルファイルへ入力するエクセ

    csvのデーターファイルから任意の行をエクセルファイルへ入力するエクセルVBA が上手くできません。 6列2000行のcsvデーターのテキストファイルの作成は、色々な参考書があり成功しました。次に このcsvのデーターファイルから任意の複数行をシート4などの任意のワークシートの任意の場所に60行程度をインポートして、この60行の数値データーを加工しようとしていますが、入力が上手くできません。数値データーの加工のプログラムは一応できているため、その様式にあわせて、所定の場所にデーターを入れる必要が有ります。 1列目には日付(シリアルの数値にしています)、その他はすべて数値(LONG型)です。エクセルは2003を使用しています。 VBAの初心者です。宜しくお願いいたします。

  • VBAよりCSVファイルの任意の行を取得

    お世話になります。 Access2010 VBAよりCSVファイルの2行目の文字列を取得したいのですが、とりあえず下記で取得することができました。 path = CurrentProject.path cnt = 1 Open path & "\test.csv" For Input As #1 Do Until cnt > 2   Line Input #1, buf   If cnt = 2 Then     MsgBox buf   End If   cnt = cnt + 1 Loop Close #1 例えば、 1行目 xxxxx 2行目 フィールド1,フィールド2,フィールド3,・・・ 3行目 データ1,データ2,データ3・・・ という内容のCSVがあり、上記のVBAを実行すると、2行目の『フィールド1,フィールド2,フィールド3,・・・』を表示できます。 で、実際のCSVファイルは数十万行あるのですが、そのファイルを指定し上記VBAを実行すると、Line Input #1, bufの箇所で「実行時エラー14 文字列領域が不足しています。」と表示されてしまいます。 何かよい方法はございますでしょうか。 なお、当該Accessはユーザーへ配布するものであり、Runtime環境で実行します。 よって、CreateObjectは使えない状況です。 勉強不足で申し訳ございませんが、ご教授の程よろしくお願い致します。

  • 複数のcsvファイルを1つのEXCELファイルにマージするVBAを教えてください

    csvファイル数は700~1000個程度でひとつのフォルダに格納されています。 このファイルをEXCEL形式で開くと、1行目にフィールド名(A~Z列で固定)、2行目以降にデータが入っています。行数はファイルにより1~100行程度で変動します。 このファイルを1つのエクセルファイルの同一シートに結合(マージ)するVBAがほしいです。 ここで、(できればですが)EXCELにマージするにあたり、1行目のみフィールドの値、2行目以降にそれぞれのcsvの2行目以降データの値を入れていくようにしたいです。つまり、フィールド名の行が何行も出てくるのを避けたいです。 申し訳ございませんが、ご指導いただけたら幸いです。よろしくお願いします。

  • 5行目からのCSVデータを作りたい

    いつもお世話になります。 とあるシステムにデータを入力して、CSVファイルを作成して別システムにインポートしているのですが、そのファイルフォーマットがデータが5行目から始まる形のものなのです。とある事情からそれをエクセルで作成しなければならず、CSVで保存したものを開くと空白行を無視して1行目から始まってしまいます。 1から4行目までを空白にしてCSVを作成する方法をご教授ください。

  • 1000行程あるデータを、10行単位する方法を教えてください。

    いつも御世話になっております。 最近VBAを始めました。以下の方法が分からず、煮詰まっております。 A列に1000行程データが入力されています。 これを、別シートにて10行単位に区切って、 A列 10行,B列 10行,C列 10行・・・・・・・ としたいのですが、 どうしたらよいでしょうか? 以前は、コピぺを手動で行っていたようなのですが、 このような作業が、特定の週に5回程発生するので VBAで行えたらと思っております。 ちなみに、データの件数は毎月500件~1000件の間を変動します。 よろしくお願いします。

  • VBAでCSVの1行目だけを書き換える方法

    VBAでCSVの1行目だけを書き換える方法について質問させて頂きます。 例として、以下のようなCSVファイルが存在したとします。 1行目がデータラベルで、2行目から数値がデータとして記録されています。 A,B,C,D 1,2,3,4 1,2,3,4 1,2,3,4 1,2,3,4 1,2,3,4 一方、マクロを含んだエクセルのセル(例えばA1, B1,C1,D1)に Anew, Bnew, Cnew, Dnew というように新しいデータラベルが入力されています。 今回実現したい動作は、CSVファイルのデータラベルA,B,C,Dを 新しいデータラベルAnew, Bnew, Cnew, Dnewに置き換えることです。 VBAのappend機能を用いて実現しようと思いましたが、最終行に追加することはできても1行目を書き換えることができません。 ポイントとして、データは下に約50万行ほど続いているので、ワークブックとして開いたりすると最悪の場合メモリ不足で 止まってしまいます。1行目の操作だけで作業を完結させたいところです。 良い方法をご存知の方がいらっしゃればご教授いただきたく思います。 よろしくお願いします。 (以下に、最終行に追加するのに用いたコードを参考として記載します) sub macro() dim ch as integer ch=freefile open "C:\***\data.csv" for append as #ch j=1 do while cells(1,j)<>"" 'cells(1,1)からcells(1,4)にAnew, Bnew, Cnew, Dnewが記録されています。 print #ch, cells(1,j) & ","; '改行させないため ; を付ける j=j+1 loop close #ch end sub