• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:このEXCELマクロのコードを、教えて下さい。)

Excelマクロでフォルダ内のCSVファイルを整理する方法

このQ&Aのポイント
  • Excelマクロを使用して、指定されたフォルダ内のCSVファイルを整理する方法について教えてください。フォルダ内には、12個のCSVファイルがあり、各ファイルの最後の行から3行目のデータを取得し、F列以降を列方向に昇順に並べ替えます。そして、結果を指定されたブックの特定のセルに表示します。
  • また、別のフォルダにも同じく12個のCSVファイルがあり、同じように処理を行います。結果は別のセルに表示されます。
  • 最後に、さらに別のフォルダにも同じように処理を行い、結果を別のセルに表示します。全ての処理が完了すると、指定されたブックのセルにすべての結果が表示されることになります。修正が必要な部分があれば、指摘していただければ修正します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

学校の宿題か何かの丸投げではないの。 >VBAコードは読めません。 こんな方にVBAの回答を書いてどうなるの。 徒労感あり。内容も条件が複雑なだけで、回答者には新しい勉強箇所がないように思う。 VBAを少なくするため、VBA作業と手作業を組みあわせました。 3シートならそのほうが良いと思い。 ーーー 下記の第2行目には、本番のCSVのファイル名を12個カンマで区切り、それぞれダブルクオートで囲んで、1行に連ねてください。 test01", "test02", "test03"は私のテスト例ですから、削除・消すこと。 VBE画面の標準モジュールに貼り付け、F5(実行)キー ----- Sub test01() fn = Array("test01", "test02", "test03") 'ファイル名指定 K = 1 '---レコード数カウントフェーズ For i = 0 To UBound(fn) 'ファイル数だけ繰り返し fn(i) = fn(i) & ".csv" Open fn(i) For Input As #1 n = 0 While Not EOF(1) Line Input #1, a '1レコードを読む n = n + 1 Wend Close #1 MsgBox n '------レコード数ー12を捉えるフェーズ Open fn(i) For Input As #1 m = 0 While m < n - 12 '最後から12番の直前まで読み飛ばし Line Input #1, a m = m + 1 Wend '---最後から12番目を捉える Line Input #1, b x = Split(b, ",") 'カンマで配列的に分割 '----シート各列にデータをセットするフェーズ For j = 0 To UBound(x) Cells(K, j + 1) = x(j) Next j Close #1 '-----シートの次の行へ K = K + 1 Next i End Sub 上記でうまくいかないときは、私の回答をAbandonしてください。 (1)入力用フォルダ1に対する、12行1シートができる。Xシートとする。 (2)入力用フォルダ2にも同じ作業をする。ファイル名はもちろん変えて実行すること。Yシートとする。 (3)入力用フォルダ3にも同じ作業をする。ファイル名はもちろん変えて実行すること。Zシートとする。 -- Xシートのある空き列に3,6,9・・36の連番を振る Yシートのある空き列に4,7,10・・37の連番を振る Zシートのある空き列に5,8,11・・38の連番を振る ーー シートXの最後の次にYシートのデータを貼り付ける。 上記貼り付け後のXシートのデータ最終行の次にZシートのデータ12行を貼り付け。 ーー 飛び飛び番号を振った列でデータ全体36行をソートする

oshietecho-dai
質問者

補足

誠にどうも有難うございます。 私のやり方が間違ってるかもしれませんが、8行目の n = 0 で「実行時エラー53;ファイルが見つかりません。」となりました。 

その他の回答 (2)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.3

どこがわからないのかを具体的に記載して下さい。

oshietecho-dai
質問者

補足

1、NO.2様のコードで恐縮ですが、現在のところ、7行目(8行目は間違え)の Open fn(i) For Input As #1 で「実行時エラー53;ファイルが見つかりません。」となりました。 「入力用フォルダ1~3」と同じフォルダに、マクロのEXCEL「入力用ブック1.xls」を置くのかが解りません。 2、「入力用ブック1.xls」には、セルB3から2つ置きに下へ貼り付けるより、とりあえず、順番に1~12、13~24、25~36、にしたほうが良いかと思ってます。 よろしくお願い致します。 よろしくお願い致します。

回答No.1

質問というか、マクロを作って欲しいってことなの? それはこの場では駄目でしょう。 他のサイトで探すべき。もしくはお金を払って、誰かに依頼すべき。 できるかどうかを聞いてるならできるよ。

oshietecho-dai
質問者

お礼

ご回答どうも有難うございます。 私の作業内容は、お解かりだと思いますが、おもにxlsファイル(csv含む)の一部の行・列の数値を昇順にし、別のEXCELブックの希望する行・列に貼り付けるだけです。 計算はしません。 もし、当作業にあった、ソフトをご存知でしたら、お教え下さいませ。 また、このような言語を日本語に訳すソフトをご存知でしたら併せてお願い致します。

関連するQ&A