• ベストアンサー

フォルダ内の全てのブックを一つのブックへ

エクセル2010を使っています。 フォルダ内の全てのブックの一番目のシートのみを、 BBB.xlsmというファイルの後ろへ全て1シートずつコピーしたいです。 又はBBB.xlsxでもいいです。 運用していく中で、マクロ用のファイルと作業用のファイルを分けるべきか、 一緒にするべきかも悩んでいます。 フォルダはその都度変わります。 ネットを検索してみたのですが、中々難しく、悩んでいます。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

以下のページはご覧になったのでしょうか? 複数ブックのシートを1つのブックにコピーする http://www.moug.net/tech/exvba/0060003.html

ngttyy
質問者

お礼

最後尾にコピーする事以外は解決できました。 どうもありがとうございました。

ngttyy
質問者

補足

わかりやすいサイトのご紹介をありがとうございました。会社ではそのページがブロックされていて見られないので、家に帰って印刷していてお返事に時間がかかってしまいました。 で、またこの中で質問です。 フォルダをマクロ実行中に選択するようにするには、この場合どのように記述すれば良いですか? Set dlg = Application.FileDialog(msoFileDialogFolderPicker) 'キャンセル時にはマクロを終了 If dlg.Show = False Then Exit Sub このような物を改変して使おうとしたのですが、うまく動きませんでした。 それと、 'コピー元の一つ目のシートを集約用ブックに移動 sWB.Worksheets("sheet1").Move After:=dWB.Worksheets(Sheets.Count) と記述したのですが、シートの順番が全て後ろから前になってしまいます。 リンクだとまた会社からでは見られないので、どうぞよろしくお願いします。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>フォルダをマクロ実行中に選択するようにするには、この場合どのように記述すれば良いですか? 以下のページが参考になると思います。 http://www.officetanaka.net/excel/vba/tips/tips39.htm >'コピー元の一つ目のシートを集約用ブックに移動 sWB.Worksheets("sheet1").Move After:=dWB.Worksheets(Sheets.Count) と記述したのですが、シートの順番が全て後ろから前になってしまいます。 データベースブックに「コピー」ではなく「移動」でよろしいのでしょうか? データベースの最後のシートに順次追加されるコードになっているのですが、逆に配置したいということでしょうか? その場合はAfterの代わりにBeforeを指定してください。

ngttyy
質問者

お礼

最後尾にコピーする事以外は解決できましたが、これ以上ここの質問では回答が付かないようなので、一度〆させていただきます。 ご紹介のサイトでは出来なかったのですが、取得したフォルダ名の後ろに¥を追加するコードを入れたら無事動くようになりました。 ご回答いただかなければやはり自分一人では解決出来ない問題ばかりでした。 どうもありがとうございました。

ngttyy
質問者

補足

ありがとうございます。 やはり移動ではなくコピーにしたいと思います。 逆というのは、新しいものがどんどん左側に来てしまうということです。 右に追加したいのですが。 マクロ実行中にフォルダを選択するのは、今日会社に行ってからまた改めてやってみたいと思います。 そのご紹介のページは検索したときに見つけてやってみていたのですが、なぜかうまく動かず、悩んでおりました。