EXCEL VBA 複数ファイルの値を1つのファイ

このQ&Aのポイント
  • EXCEL VBA複数ファイルの値を1つのファイに集計する方法を教えてください。
  • デスクトップに集計.xlsxというファイルを作成し、H4セルに指定した月の値を入力して集計ボタンをクリックすると、複数のファイルから該当する月の値を集計して表示するVBAコードの作成方法を教えてください。
  • Cドライブ配下の[実績]フォルダにあるA.xlsx〜Z.xlsxという複数のファイルを1つずつ開いて、B4セルに記入されている月が集計.xlsxで指定された月と同じであれば、対応するコードと金額を集計.xlsxに転記するVBAコードの作成方法を教えてください。
回答を見る
  • ベストアンサー

EXCEL VBA 複数ファイルの値を1つのファイ

おせわになります。yakkunnと申します。 当方EXCEL VBAは素人なのですが、下記の処理を実現したく、恐れ入りますが、どなたかVBAコードをご教授いただけないでしょうか? ■やりたいこと デスクトップに集計.xlsxというファイルを作り、このファイルに「集計」というボタンを作成します。H4セルに4月とか入力させて(出来ればプルダウンで選択)、「集計ボタン」をクリックしたら以下の集計処理が動くVBAコードをご教授いただきたく思います。 ■実現したい処理 Cドライブ配下に[実績]というフォルダがあります。このフォルダにはA.xlsx~Z.xlsxという複数のファイルが存在します。(フォーマットは全て同じ) このファイルを1つずつ開き、B4セルに記入されている「月」が集計.xlsxのH3セルで指定された「月」と同じであれば、B7列より「コード」を読み込んでそれに対応したE列の金額も読み込みます。このコードを集計.xlsxのH7セルに転記、金額をK7列に転記、これをA.xlsxのB列のコードが存在するまで読み込んで、集計.xlsxのHセル、K列にどんどん転機したいのです。 この処理を[実績]フォルダの中の全ファイルに対して実施したいです。 最後に集計.xlsxのK列の最後に金額合計が出ると最高です。 分かりづらい説明で申し訳ございませんが、何卒よろしくお願いいたします。 イメージ図を添付いたします。 明日には動かさないといけなくなり困っております。。何とぞよろしくお願いいたします。 環境 windows10 Excel2019

この投稿のマルチメディアは削除されているためご覧いただけません。

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

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

>VBAコードをご教授いただけないでしょうか こんな丸投げはあり、かな。 VBAの初級は済ませて、判らない部分をピンポイントで質問すべき。 問いよりも、処理ロジックのパターンを習得すべき。これは教えてもらわないと、自発的会得では、月日がかかると思うが。 (1)質問者の仕事上の課題だろう。本来は、システム担当や業者に頼むべき。 (2)質問内容が明確でない。 (3)例示シート・データが質問文に示されていない。他者は、VBAコード作成に苦労する。 (4)テストデータを作り、テストして、回答に仕立てるのに、2,3時間かかる見込み。 (5)(2)は特に、集約シートに元データ明細を残すのかどうか、知りたい。 (6)修正が必要になった場合、質問者で行えない恐れが多い。無駄になる。 (7)処理ロジック(プログラムの処理方式、ほぼフローチャートに当たるもの)も、回答者個人で違いそうだ。 ーー (5)の点で合計(や平均など)でよいなら、エクセルの操作で、「統合」というものがある。 こういうのを、知っているのか? これはマクロの記録を取れそうだし、VBAコード作成と実行、ででも達成できる。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_consolidate.htmlなど。 ーー Googleで「エクセル 統合 シート」などで照会すれば記事が出る。 例えば、 https://media.yayoi-kk.co.jp/backoffice/8388/ 統合」を使えば複数のシートやブックに分散したデータが一つの集計表になる この記事は要点を得ている。 これで辛抱したらどうか。 これには、(模擬)例データが載っていて、丁寧に説明されている。 こういうのを見習って、シート実例3例、最終結果シートを、質問文に上げるべきだ。 そして要点を文章で添えてね。 ーー エクセルの操作には、合計を求める、統合やピボットなどがあるが、明細を残したままの、表の「組み換え」、に当たる操作そのものは、不足している(無い)と感じる。最終結果が、タイプ別化をしずらいのだろうが。 我流の、ボタンがどうのこうのいうのは、もっと学が進んでの話だ。巷にこの仕組みは、あふれているが、自作学習上は次段階のこと。

yakkun2338
質問者

お礼

imogasi様 お世話になっております。 ご連絡いただきましてありがとうございます。 仰る通リでございます。 システム担当者がいればお願いしたいのですが、当方の環境ではそのような人間がいないため、私に依頼がきてしまう状況で困っているのが実情です。。 事情を説明しても「何とか頑張ってやってほしい」と言われこのような状況になっております。 色々とご教示いただきましてありがとうございました。

関連するQ&A

  • EXCEL VBA 複数ファイル値を集計

    yakkunnと申します。 お世話になっております。 下記処理を実現するためのEXCEL VBAコードをご教授いただけないでしょうか。 ■やりたい事 デスクトップに「実績集計.xlsx」というファイルがあります。 このファイルにボタンを配置し、このボタンをクリックしましたら、C3セルに記述されているファイルパス配下を見てその配下ファイルを全て開き、各ファイルの値を「実績集計.xlsx」に全て転記するVBAコードをご教授いただきたく思います。 ■転記内容 例えばA.xlsx~C.xlsxという3つのファイルがあるとします。この3つのファイルを開いて・・ 左が「A.xlsx」、右が[実績集計.xlsx」とします 処理付を転記・・B4セル⇒B7へ転記 コードを転記・・B7セル⇒C7へ転記 商品名を転記・・C7セル⇒D7へ転記 数量を転記・・ D7セル⇒E7へ転記 金額を転記・・ E7セル⇒F7へ転記 これをA.xls~C.xlsまで繰り返し、実績集計.xlsxに値をどんどん転記したいです。 金額のF列の最後に合計金額が出力されれば最高です。 よろしくお願いいたします。

  • EXCEL VBAでの質問です。

    EXCEL VBAでの質問です。 集計用のファイル1つと参照するファイルが30あります。 参照するファイルは基本的に書式は全部同じで数値だけが違い、参照させたいセル位置は全て同じです。 そしてAにある表にこのように順次下に転記させたいです。 B 1 2 4 6 2 5 C 4 5 3 7 8 4 D 2 3 7 5 3 2 この時いちいち別のコードで1つ1つのファイルを転記させるのではなく30のファイルをひとまとめに転記させるコードを作りたいと思っています。 もしわかる方がおりましたらコードをよろしくお願いします。

  • VBA 複数ファイルの操作

    初心者のため教えてください m(__)m 現在VBAにて処理を簡単にしたいと考えております やりたいことは、同一フォルダ「TEST」に20個ほど.xlsxファイルがあります。 そのそれぞれのブックにはシートが4つに分かれており「data」という シートのA3~AU3のデータを集約.xlsmの「まとめ」というシートに転記したいです。 また、 ・追記するされる際に一番左側(A)には番号を自動で振りたい。(1.2.3.4.....) ・データはB2から貼り付け、最終行にどんどん追記されるようにしたい ・ファイルを開かずに実行したい ・最後に転記完了のメッセージを出したい いろいろとサイトで調べているのですがなかなか進まず助けて頂けると幸いです。 よろしくお願いいたします

  • エクセルVBA、マクロについて教えてください。

    https://box.yahoo.co.jp/guest/viewer?sid=box-l-62itttdrrgzrvsaxkvu53tmg3a-1001&uniqid=d4c90186-7ae6-4c7a-8f04-a499509147fc&viewtype=detail サンプルブックを見て頂きたいのですが、シートに分けておりますが、それぞれ別ブックとなります。 エクセルブックAにはシート1-シート10まであります。 ブックAのデータをVBAを使って、ブックBに転記したいのですが、 今はVBAがわからないため、作業列、関数を使って読み取っているのですが、検索をかけると、とても遅いため、関数を消すと早く検索が出来たため、VBAでデータを転記出来たらいいなと思っております。 いくつか条件があるのですが、 ブックAのAQ-ATが作業列としており、 ブックBのG-Uまで関数を入れております。 G4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,G$2) H4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A5,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,H$2) I4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,I$2) 同じような関数をG-Uまで入れております。 このような関数を入れております。 E4==VLOOKUP(A4,'[ブックA.xlsx]シート1'!$B:$AC,28,FALSE) この関数をなくすとAdvancedFilterが早くなるので、ここの部分を転記出来たらと考えております。 ブックAとブックBはブックAのB列のコードとブックBのA列のコードが一致すれば、転記すると言った感じです。 決まっている部分は、商品コードは重複しないのと、ブックAのB列は結合されております。 結合セルのため、作業列を使用しておりました。 ブックAの基準をかえずに転記できる方法があればおしえてください。

  • エクセルVBA ファイル名操作

    エクセルマクロのコードにおきまして 「フォルダの選択」ダイアログから エクセルファイル 123.xlsxを例えば 開くときに それをa.xlsxという名前に変えて 以下のそれに続くVBAコードにおいて a.xlsxを操作したいのですが、 a = Application.GetOpenFilename() Workbooks.Open a これを実行すると求めるダイアログが表示されて 使いたい123.xlsxを開くをクリックしますが これでは123.xlsxがa.xlsxにはなりません このa.xlsxのファイル名で別途ファイル作成する方法を 御教示いただけると助かります よろしくお願いします win10 office365 コードは以下 部分ですが こういう流れで作成したい所存です Sub あいう() a = Application.GetOpenFilename() Workbooks.Open a 'b.xlsxファイルを新規作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\あいう\b.xlsx", FileFormat:=xlXMLSpreadsheet 'a.xlsxファイルの1行目のA1~AG1のセルの値をコピー Workbooks("a.xlsx").Worksheets("Sheet1").Range("A1:AG1").Copy 'b.xlsxファイルのA3~AG3のセルに貼り付け Workbooks("b.xlsx").Worksheets("Sheet1").Range("A3:AG3").PasteSpecial xlPasteValues 以下省略 よろしくお願いします

  • 複数のExcelファイルから値を引っ張ってくる

    いろいろ調べたのですが、いまいちよくわからなかったので教えてください。よろしくお願いします。 複数のエクセルファイルから値を引っ張ってきて、計算をしたいのですが、そのようなことは可能でしょうか? 例えば、 Sample1.xlsxのsheet1のC列にはA列とB列を足すという式が入っている。 Sample1.xlsxのsheet1のA列には、Sample2.xlsxのA列の値を、 Sample1.xlsxのsheet1のB列には、Sample3.xlsxのA列の値を、 参照してきて入れたいということです。 Sample2や3を変更したときには、Sample1の値にも反映してほしいです。 可能ならば、参照するファイルやシートを自由に決定できると良いです。 説明が下手で申し訳ありませんが、よろしくお願いいたします。 なお、マクロ等はまだ初心者です。

  • Excel VBAでの値の比較

    お世話になります。 Excel VBAでの値の比較方法についてご教授頂きたく存じます。 下記のような値がセルに入っていると仮定しまして、 セルA1とセルG1を比較する セルA2とセルG2を比較する セルB1とセルH1を比較する セルB2とセルH2を比較する 値が違う場合のみ、A列、又は、B列のセルの色を変更したいのですが・・・。 下記例の場合であれば、B1とA2がセルの色が変われば良いです。    A列 B列    G列 H列 1行  1  1     1   2 2行  2  2     3   2 VBAで実現したいと思います。 何卒、宜しくお願い申し上げます。

  • Excel VBAに詳しい方教えてください。

    Excel VBAについて 下記内容をマクロを使ってできるようにしたいのですが、どなたかお力添えいただけませんか? 例えば、下記のような記載のファイルBook1があるとします。 A1セル内 名前 B1セル内 〇〇会社 C2セル内 〇〇部 D2セル内 〇〇係 この内容を別のファイルBook2へ転記したいのです。 ただし、Book2の列は下記のようになっており A列 名前(すでに入力されている) B列 会社名 C列 部 D列 課 E列 係 Book1の内容をBook2の下記の条件で正しいセルへ転記したいです。 -Book1で[部]で終わっているものはBook2のB列[部]に転記 -Book2ですでに入力されている名前の行に、Book1の情報を転記 ご協力のほど何卒よろしくお願いいたします。

  • エクセル 複数シートのデータを別ブックにまとめる

    月毎の実績表を作ろうとしています。 構成は、7~6月の12枚シートでひとつのブック【実績表.xlsx】(上画像)。 これとは別に、各営業が入力できるブックを12か月分【7月営業.xlsx ~ 6月営業.xlsx】(下画像)。 下画像にあるデータを上画像の表にまとめたいのです。 セルの対応 上画像      下画像  B列23行以下   シート名 C列〃       A列orE列35行~49行 E列〃       B列orF列〃 H列〃       C列〃 I列〃        D列〃 K列〃       G列〃 L列〃       H列〃 これを鈴木さんデータから順にまとめれるようお願いします。 VBAをネット検索し、同ジャンルのQ&Aを複数見つけたのですが、なにぶん素人なものでよくわかりませんでした。 非常に困っていますので、どなたかお助けください。

  • ExcelVBAで同一フォルダにある複数ファイルの特定セルの値を纏めたい

    VBA初心者です。同じような質問があがっていましたが、初心者のため応用が効かずよく分からないので教えてください。(Excel2003使用) Cドライブの直下に仮に「注文」という名前のフォルダがあり、 その中に同じ形式のExcelファイルが複数入っています。 (ファイルの名前は全て異なります) 各ファイルのsheet1にB2セルは発注した人の名前、H4、H7に注文した商品の単価、H14に合計額(SUM関数)が入ってます。 このB2セルとH4、H7、H14の値のみを別ファイルに一つにまとめたいのですがどうすればよいでしょうか。       A列             |B列    |C列    |D列  -------------------------------- 1行目  |○○(B2の名前)   |15(H4)|10(H7)|25(H14) -------------------------------- 2行目  |△△(別ファイルB2) |0      |15    |15 -------------------------------- 3行目  |××(別ファイルB2  |20     |0     |20 といった感じにしたいです・・ よろしくお願いします。

専門家に質問してみよう