フォルダ内にあるファイルの内、複数を指定して開いて、任意の部分をコピーし、マスターとなるファイルに貼りつける、という作業をVBAで行いたいと思っています。
VBAを全く知らないため、毎回20近いファイルを手で開いてはコピペしなくてはならず困っております。
●あるフォルダ内にあるファイルの形式は全て同じで、10行目まではタイトル欄になっているため、11行目以降の記載がある行だけをマスターとなるファイルにコピペしたいです。
●マスターも同じく10行目まではタイトル欄なので、11行目以降に、他ファイルの11行目以降の内容をどんどん積み上げていく形式にしたいです。
●ファイルの名前は毎回変わるので、フォルダ内の指定されたエクセルファイルのみをコピペ、のような処理にしたいです。
●B列だけは必ず記載がある列なので、そこを参考に11行目から何行目までをコピーすればいいのかを判断できるのかな、と思います。
●貼り付けが完了したらマスター以外の開いたファイルを全て閉じるところまで自動化できたら有難いです。
全くの初心者なため、貼り付けるだけで動くようなものをいただけれると大変助かります。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
>全くの初心者なため、貼り付けるだけで動くようなものをいただけれると大変助かります。
そこまで甘えないことが上達の早道です。
同じような質問が良くありますよ。最近回答した質問ですが
http://oshiete.goo.ne.jp/qa/7578876.html
http://oshiete.goo.ne.jp/qa/4221547.html
を参考にしてみてください。とは云っても少し、説明しておきますと
●あるフォルダ内にあるファイルの形式は全て同じで、10行目まではタイトル欄になっているため、11行目以降の記載がある行だけをマスターとなるファイルにコピペしたいです。
Sheets("Sheet1").Range("A1:J1000").Copy
の部分が Sheets("Sheet1").Range("A11:J1000").Copy
にすると、11行目からJ1000までに という事になります。
デーやが入っている最終の行を取得する方法はありますが、データを元データの行数がたいしたことなければ
元データが最大1000行までであれば
Range("A1:J1000").Copy
と指定しても、空白がコピーされるだけですので十分ではあります。
●マスターも同じく10行目まではタイトル欄なので、11行目以降に、他ファイルの11行目以降の内容をどんどん積み上げていく形式にしたいです。
Range("A65536").End(xlUp).Offset(1, 0).Select
がA列の最終の行から上へ検索してデータの入っている行の下を探しています。
●ファイルの名前は毎回変わるので、フォルダ内の指定されたエクセルファイルのみをコピペ、のような処理にしたいです。
Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
で指定したフォルダのエクセルファイルを順に取得しています。
●B列だけは必ず記載がある列なので、そこを参考に11行目から何行目までをコピーすればいいのかを判断できるのかな、と思います。
Range("A65536").End(xlUp).Offset(1, 0).Select
を
Range("B65536").End(xlUp).Offset(1, 0).Select
とするとB列の最終行を取得できます。
*但し、B65536 はエクセル2003以前のヴァージョンの最大65536行なので、この様になっています。
エクセル2007以上であれば、 65536 の値が異なります。
バージョンを問わずという事であれば、最終の行を取得する方法があります。
●貼り付けが完了したらマスター以外の開いたファイルを全て閉じるところまで自動化できたら有難いです。
Workbooks(buf).Close SaveChanges:=False
の部分が、上書き保存せずに 閉じる という事です。
更に検討が必要な部分としては、貼り付けの作業を行った後のファイルをどうするかです。
そのままでは、VBAを実行するたびにデータが追加されますしね。
解決案
コピーが終了したら、ファイルごと削除、ほかのフォルダーへ移動させる。
或いは、
データの部分(11行目以下)を削除して保存していく。
或いは、
VBA実行前に、マスターのデータをクリアして、毎回、全てのファイルのデータを
貼り付ける。
とりあえず、ここまでにしておきます。
OKWave上でなぜか投稿ができず、お礼が遅れてしまいました。申し訳ありません。丁寧にご説明いただき、ありがとうございました。大変助かります。いただいたVBAを元に、自分でもきちんと勉強するようにしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
フォルダ内の全てのファイルに貼り付けを行うマクロを作りたい
Visual Basic(VBA)
-
複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法
Excel(エクセル)
-
複数のExcelを1つのExcelに
その他(Microsoft Office)
-
-
4
Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?
Excel(エクセル)
-
5
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
-
6
エクセル 複数ファイルの一括セル入力
Excel(エクセル)
-
7
フォルダ内の全ブックのシート名を変更したいです。
Excel(エクセル)
-
8
フォルダ内ブックの数式を全て値に変換するマクロ?
Excel(エクセル)
-
9
【VBA】全シートの計算式を全て値に変換したい
Visual Basic(VBA)
-
10
マクロを特定の複数シートで実行する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Access VBA を利用して、フォル...
-
共有フォルダに誰が何にアクセ...
-
Batch: フォルダ内の特定のファ...
-
VBAでCSVファイルが使用中かど...
-
月が変わったら自動でシートが...
-
【アクセス】「ほかのユーザー...
-
excelを共有ファイルにすると行...
-
tmpファイル なぜできる?削除...
-
httpの画像urlが作りたいんです...
-
Excel VBA 処理後データが重た...
-
C言語でのこぎり波を作る方法
-
ACCESSのDoCmd.TransferText
-
エクセルで上書き保存する度に...
-
拡張子が「cda」のファイルを聞...
-
EXCELで列単位でスクロールさせ...
-
ファイルの途中に文字列を挿入
-
Excelの複数人での参照について
-
(Excelマクロ)datファイルをエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共有フォルダに誰が何にアクセ...
-
【Excel】[Expression.Error] ...
-
特定のエクセルファイルを起動...
-
Batch: フォルダ内の特定のファ...
-
VBAでCSVファイルが使用中かど...
-
月が変わったら自動でシートが...
-
AccessVBAで作成したExcelファ...
-
tmpファイル なぜできる?削除...
-
Access VBA を利用して、フォル...
-
(Excelマクロ)datファイルをエ...
-
事務の派遣で働いています。多...
-
Excel VBA 処理後データが重た...
-
excelを共有ファイルにすると行...
-
【アクセス】「ほかのユーザー...
-
XMLデータを変換し印刷する方法
-
CSVの項目行を削除して一つのフ...
-
mdbファイル フォームを開くと...
-
社内Excel共有ブックでの保存ト...
-
ファイルの途中に文字列を挿入
-
拡張子が「cda」のファイルを聞...
おすすめ情報