- 締切済み
VBA でCSV集計
fumufumu_2006の回答
- fumufumu_2006
- ベストアンサー率66% (163/245)
ANo.1です。 どこでどんなエラーになりますか? Dim fso As New FileSystemObject で、「ユーザ定義型は定義されていません。」の場合は、参照設定でMicrosoft Scripting Runtimeの参照にチェックを入れてください。 方法は、VisualBasicの画面で、「ツール」->「参照設定」で、「参照可能なライブラリファイル」の中の「Microsoft Scripting Runtime」のチェックを入れてください。 どうしてもわからない場合は、 Dim fso As New FileSystemObject Dim fld As Folder の部分を Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fld As Object に変更してください。 「実行時エラー76:パスがみつかりません。」の場合は、パスが正しくありません。 まずこのVBAがあるブックを保存してください。 そのブックのあるフォルダの中のabcと言うフォルダが必要です。 例えば、このブックがc:\book1.xlsなら、c:\abc\0812\aaa.csvと言うファイルがある場合です。 このブックがc:\test\book1.xlsなら、c:\test\abc\0812\aaa.csvと言うファイルがある場合です。 または、「ThisWorkbook.Path & "\abc"」の部分を、「"c:\abc"」とかのabcの絶対パスに変えてください。 この時、結果書き込みの部分の「ThisWorkbook.Path & "\abc\合体.csv"」の部分も「c:"\abc\合体.csv"」とかにしてください。
関連するQ&A
- Excel VBA
Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。
- 締切済み
- Visual Basic
- Excel VBA 外部データ(CSV)の自動読込について
VBAに関して昨日基本書を読み始めたばかりの初心者です。 業務の効率化が急務であるという手前勝手な都合により、 さっそくの他力本願で失礼とは思いますが 以下のケーススタディについてアウトラインだけでも助言をいただけないでしょうか。 帳票[yyyymmdd].csv ←末尾に年月日 日毎にCSVファイルが存在する A1:A10 B1:B10 C1:C10 の範囲の値を 期間集計.xlsx のそれぞれシート別のyyyymmdd列1行~10行にコピーする sheet1の[yyyymmdd]列1行:10行 ←A1:A10の値 sheet2の[yyyymmdd]列1行:10行 ←B1:B10の値 sheet3の[yyyymmdd]列1行:10行 ←C1:C10の値 過去数年分の日毎帳票を一括で自動処理したいと思い、 マクロの記録機能を使用したのですがどうしてもうまくいきませんでした。 特にわからないポイントが ・CSVファイルを開かずに参照する処理 (Excelで開かずにどうしてセルの範囲を指定できるのかという矛盾が生じてる気はするのですが・・・) ・自動的に帳票[yyyymmdd].csvを昇順に参照する処理 ・それをyyyymmddに対応した列にコピーする処理 以上のVBA処理についての助言をいただけますようよろしくお願いします。 Excelのバージョンは2007です。
- ベストアンサー
- オフィス系ソフト
- 複数CSVファイルをExcel形式1つにまとめたい
VBA初心者です。 似たような質問・回答がありますが、どうも私の意図するところと異なるので、 新たに質問させていただきます。 どうぞお願いします。 仕事場で、基本1日1ファイル取得している複数のCSVファイルを、 1週間に一度Excelファイルに一週間分のデータを追加し、 最終的には1か月毎に1つのExceファイル(1シート)に集計してます。 全ファイルとも内容は同じで、1シートで作成されており、 タイトル行は1行目、2行目以降データ(行:データ数はファイル毎に異なる)、 列数はA-IV列といった構成になります。 新しい1つのファイルにまとめる際には、 B列とG列のみ抽出し、一行目にタイトル行、2行目からデータ、 最終行に次のファイルのデータと、いうように複数のファイルのデータをつなげて 1つのファイルにしたいのです。 ちなみに出来上がったExcelファイルとしては、 A列に元CSVファイルのB列データ、C列に元CSVファイルのG列データ、 B列に各データがどのCSVファイルの物か分かるように、 各ファイル名の日付にあたる後ろ部分を表示させたいのです。 ファイル名から日付を拾えない場合は、 ファイルをまとめる前に、列を挿入し、 C列にデータ日付の項目を作り、そこに日付を入力し、 まとめる際に、B・C列+G列を抽出、といった形で、まとめられたらと思ってます。 *各Exceファイルのタイトルの後部分がデータの日付を表す (タイトル例:0803abcde2013_08_03.xls) B列2行目以降に、それぞれ抽出したデータのファイル名から、 日付にあたる部分を書き出し(8月3日と言ったように)表示させたい。 場合によっては、前部分を抽出するパターンもあるので、そちらもお願いします。 *今後、他の何種類かの複数CSVファイルでもファイル毎に (こちらも全ファイルとも内容は同じ)同様に1カ月毎にまとめたいので、 違う条件でも抽出できるように、応用できたらと、考えております。 (抽出する列がB列とI列のみ、A~C列+F列など) VBAで作業したいと考えてます。色々とお手数ですが、よろしくお願いします。 また、他にお勧めのサイトや、参考になる質問がありましたら、 合わせて、教えていただけると幸いです。
- ベストアンサー
- Visual Basic
- エクセルで集計
エクセルで集計 シート1:A列に日付2000行程度、B列に品名A,B,C,D…500種類程度、C列にその内容。日毎に行は増えていきま、同じ品名が何度も登場してきます。 シート2:ここに新しくシート1の集計をして、同じ品名の多い順に並べ替えてリストを作成したいと思います。 シート1に新しく行が増えると同時にシート2の集計に反映させたいのですが、いい方法はありますか?
- ベストアンサー
- その他MS Office製品
- csvファイルのデータ変換について
OS:windows2000pro VB:VB6.0sp5 c:\data.csv(カンマ区切) のデータ(全6列)で 1列目,2列目,3列目,4列目,5列目,6列目 [変換前(全6列)] abc,a1,aあ b2,3c,4d5e (1行目) ccc,c3,aあ い,3c,4d5e (2行目) bbc,b2,あ b2a,c3,d5e4 (3行目) [変換後(全6列)] abc,a1,"aあ b2",3c,"4d5e" (1行目) ccc,c3,"aあ い",3c,"4d5e" (2行目) bbc,b2,"あ b2a",c3,"d5e4" (3行目) 上記の様に 3列,6列目を「"・・・"」ダブルコーテイションで 囲い(変換し)、c:\data_after.csvというファイル名で 保存する為のプログラムをご教示ください よろしくお願いいたします
- ベストアンサー
- Visual Basic
- エクセルを使ってCSVデータを自動集計したい
毎日吐き出されるcsvデータがあります。 行に日付、列に各ディレクトリへのアクセス回数です。 行は2009/01~集計当日まで90日分程度、 列は現時点で230くらいですが、 今後、週に2から3個くらい増えていきます。 このデータを、自動で集計することはエクセルで可能でしょうか。 月ごと、週ごとのカウントの上位ディレクトリがすぐに確認できると 嬉しいです。 固定の個数のデータを引用して集計まではなんとなくわかるのですが、 日々増えて行くので困っています。
- 締切済み
- オフィス系ソフト
- 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形式で保存したいのですが
EXCELで、以下のような表を作成してあります。 A B C 1 あ,10 2 い,20,100 3 う,30 4 え,40,200,か 5 お,50 A列にカンマを含めたデータが入っており、 1000行程度あります。 このようなデータをCSV形式で保存したいのですが、 単純にVBAを組むとそれぞれのデータが""で囲まれます。 また、上記例の3行目(以降)のデータの終わりに「,」が 出力されてしまいます。 例: あ,10 い,20,100 う,30, VBAで、 (1) ""で囲まれることなく、 (2) 行内のデータの個数によって,をつける位置を判断させて (3) セルに入っているカンマ区切りのデータをB列等に分離せずに 保存する方法はないでしょうか? ご教授、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで、二次元集計を行う方法
A列 B列 C列 「日付」 「売上」 「商品番号」 1月10日 12,000 1AD 1月10日 12,000 1AD 1月18日 5,000 5AC 1月20日 12,000 1AD 1月21日 8,000 3BA ・ ・ ・ のようなシートがあります。データ数は、60,000行以上 あります。これを日付と商品番号の2段階でソーティングして、次のような集計表をいかに簡単に作れるか考えています。 A列 B列 C列 D列 「1AD」 「3BA」 「5AC」 1月01日 1月02日 ・ ・ ・ 1月18日 ・ ・ ・ 各セルには、それぞれ日付/商品番号ごとの平均値が 入るようにしたいのですが、自身で色々探しましたが、 なかなか良いアイデアがえられませんでした。 そこで、どなたかご存知の方がおられましたら、 回答お願い致します。
- ベストアンサー
- Visual Basic
- 複数の.csvファイルから指定数値を取り出す
お世話になります。 早速質問ですが、Excel VBA環境で あるフォルダ内の複数の.csvファイル一つ一つから 指定数値(B列6行目のみ)を取り出して、 デスクトップ上、別のExcelシートの(B列1行毎に日付と時間が書いてある) 隣のC列にまとめて自動で書いてくれるプログラムがあればいいな と考えているのですが、 可能でしょうか。 値をただ吸い出して、別の新規ファイルにまとめて表示してくれるだけでも 助かります。宜しくお願い申し上げます。
- ベストアンサー
- Excel(エクセル)