dポイントプレゼントキャンペーン実施中!

複数のエクセルブック(.xlsx)を一つのエクセルブックに纏めたい。

昨日も質問させて頂き、マクロ文まで記載下さったのに上手くいきません。

1.ブック名(ファイル名はバラバラ)
2.それぞれブック名に1つのワークシートしか使っていない。ワークシート名は全ブックとも同名
3.フィールド名、並びは全ブック(全ワークシート)同じ。レコード内容が毎月変わるだけ。


1.ブック名→北海道.xlsx、東北.xlsx、関東.xlsx、、、
2.ワークシート名→明細
3.フィールド名→1列目のフィールド名には商品名、価格、販売店舗、売上日、、、などがあり、並びは地域が変わっても不変。

私はこれらの複数ブック(ファイル)から、1つの全国分のレコードを持った1ブック(全国.xlsx)を別に早く作れる方法が知りたいです。

今は北海道.xlsxを親にして、東北.xlsxのフィールドを除く2行目からレコード存在部分の末までを行コピーし、北海道.xlsxの末行にペースト、次には関東のフィールドを除くレコード存在部分の行コピーし、北海道親の東北追加されたものの末行にペーストを繰り返し、最後に親とした北海道.xlsxを全国,xlsxにリネームし保存し使用しています。

この作業を自動化するマクロ文を教えて下さい。
フィールド名だけを1行目に持った全国.xlsx(.xlsmじゃないと駄目?)を新たに用意し、そこに北海道、東北、関東、、のレコードが存在する2行目から末行(末行は毎月行数は変わります)を次々とブランク行なく作る方法を教えて下さい。
よろしくお願い致します。

A 回答 (3件)

前回、下記URLで回答したものです。


https://oshiete.goo.ne.jp/qa/10579017.html
上記、URLのマクロの
Const sname As String = "集計" を
Const sname As String = "明細"
Const folder As String = "D:\goo\excel\goo371\" をあなたの環境の
北海道.xlsx、東北.xlsx、関東.xlsx、、を格納したフォルダにしてください。

マクロを格納したファイルは、全国.xlsmになります。
全国.xlsmは、どこに格納されていても構いません。

提示したマクロでは全国.xlsxに北海道.xlsx、東北.xlsx等のものを集計することはできません。どうしても、全国.xlsxに集計したい場合は、マクロの作り直しになります。
    • good
    • 0
この回答へのお礼

昨日に引き続きご回答ありがとうございます。投入後に状況をご連絡致します。連日ご指導下さり、ありがとうございます。

お礼日時:2018/06/28 20:14

横からすみません。


仕事上で良くらるパターンです。
https://ameblo.jp/hokora2016/entry-12319754037.h …
を参考にしてみてください。
VBAの必要な知識として Dir関数があります。
関数と云っても他の関数とはちょっと使い方が違います。
https://ameblo.jp/hokora2016/entry-12319718755.h …
で詳しく紹介しています。
    • good
    • 0
この回答へのお礼

ありがとうございます。例が自分の環境に似ています。tatsu99さんの解説含め取り組んで参ります。

お礼日時:2018/06/29 21:29

こんにちは



すみませんが、回答ではありません。

>マクロ文まで記載下さったのに上手くいきません。
回答者はテストして回答しているはずです。
(万一テストできない環境の場合は、未検証の旨を記載するはずです)

一般的に、質問文に必要な情報がきちんと示されていることはまずないので、回答者はコードのような厳密さを要求される回答をする場合は、適宜条件を仮定をして回答しています。
(その条件から逸脱した利用法では動作がおかしくなったり、エラーが出たりするからです)
それなので、回答文に仮定した条件も併せて記載するのが通常です。

質問者様は、それに合わせた環境下でテストなさっていますか?
回答者の仮定と異なるなる(質問文に記載のない)独自の条件下でテストしても、上記のように動作しない可能性が大であると言えます。

>マクロ文まで記載下さったのに上手くいきません。
しかも「うまくいかない」の一言で切り捨ててしまい、同じ内容の質問を繰り返していらっしゃいますが、これでは堂々巡りになる可能性があることにお気づきになられないでしょうか?

この掲示板には質問者の質問履歴を表示する機能がありますが、非公開に設定なさっているので、この質問を直接見たひとには過去のやり取りもわからないので(仮に、失敗したものでも、除外する手助けにはなります)、一からの繰り返しになりかねません。
まぁ、「昨日も質問させて頂き」で探すこと不可能ではありませんが・・・
非公開になさるのは自由ですが、関連質問の場合は、せめて前回の質問にリンクを貼っておくくらいの親切心が必要ではないかと思います。
https://oshiete.goo.ne.jp/qa/10579017.html


※ ご質問文をざっと読んで、一点だけ気になったことを…
記載してゆくファイルの順序が決まっているのではないかと感じましたが、順序はランダムでも問題はないのでしょうか?
前回回答者様のコードでは、あるフォルダ内に存在する.xlsxファイルを全て対象とし、ファイル名順に記載されてゆくようになっています。(通常エクスプローラでファイル名順に表示させた時の順です)
フォルダ内に対象外のエクセルファイル(例えば集計しようとしているファイル自身など)が存在する場合や記載順序を指定したいような場合には、その内容を明示しない限り、回答者がそのような事態までを想定することはあまりないと考えられます。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。ご指摘ありがとうございます。記載順序の規則性は問いません。同一フォーマットのブック名(ファイル名)が地域別に存在するものをフィールドは一行目に保持して、各地域の2行目からnull手前の行までに存在するレコードを合体し全国版としたいという意味です。

お礼日時:2018/06/28 20:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!