『同じフォルダ内の複数BOOKのシートの一部をまとめて1つのBOOKに貼り付けたい』(ミント)
大変困っています!!
すべて同じ構成の複数BOOKの最初のシート(Sheet1)の一部のセル範囲を新しい集計用のシートに貼り付けるVBAのコードを教えてください!!!!!!
VBAを使用したいのですが、いろいろ調べてもたくさんコードがあって、どれを使えばいいかわからず、混乱状態になってしまっています。。。
詳細はこのような形です。
各BOOKの最初にSheet1があり、その構成はどのBOOKも同じです。
<たとえば・・。>【Book1】 A B C D 1 あ い う え→ラベル行2 お か き く3 け こ さ し【Book2】 A B C D 1 あ い う え→ラベル行2 す せ そ た3 ち つ て と
これを【集計用シート】 A B C D 1 あ い う え2 お か き く3 け こ さ し4 す せ そ た5 ち つ て と
このようにつなげていきたいのです。全BOOKが複数シートありますが、集計するのはSheet1だけでよいです。
できれば、1行目にあるラベル以外を順番に貼り付けられればと思います。要するに、上記の例でいくと、2行目から集計用シートに貼り付けられていくイメージです。なお、すべてのBOOKは一つのフォルダにまとめられています。
VBA初心者でこの情報だけで絞り込めるのかわからないのですが、他にも情報が必要であれば教えてください。。。
上記のことができるコードを記載頂けたらと思います!!宜しくお願いします!!!
なお、Excelのバージョンは2007、OSはWindows7です
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
エラーが出たときの,初歩的な対応の手順を憶えてください。
>「インデックスが有効範囲にありません」
>と表示されてしまいます。
エラーのダイアログでデバッグのボタンをクリックする
どの行に色が付いて表示されるか確認する
●漫然と「うごいたー♪ 止まったー(T T)」と一喜一憂して終わりじゃなく,マクロの具体的にどの行でエラーになったか確認するのが重要ということです
その行に書いた「何か」に問題があるので,状況を確認して『適切に』修正してください。
といわれても,いったい具体的に「どうしたらいい」のかわかりませんね。(わかったら質問しないでしょうから。)
たとえば…
○range("A2:D" & range("A65536").end(xlup).row).copy _
destination:=thisworkbook.worksheets("集計").range("A65536").end(xlup).offset(1)
でエラーが起きていれば,アナタの集計ブックに「集計」シートを用意するという準備を怠っていることが考えられます。
たとえば…
○worksheets("Sheet1").activate
でエラーが起きていれば,開いたブックにあなたが言うようには「Sheet1」というシートが無いことが考えられます。
一連のマクロは,アナタの説明したように「Sheet1からデータをコピーしてくる」という前提で書かれているので,どうしたらアナタが思っているとおりにコトが運ぶか,対応を考える必要があります。
「実際にエラーが起きたとき」に。
一体全体具体的にどのブックが開かれていて問題が起きたのか,アナタがマクロを試している時の「具体的な状況」をアナタがご自分で確認して「何が起きて問題発生した」のかをしっかりアナタがご自分の目と手で確認して対応を考えてください。ということです。
●その他,ちがう行でエラーが起きていたら。
具体的にどこで何が起きたのか,目に見える様子を具体的に補足して追加ご質問を投稿してください。
ちなみに…
>やはり★の部分の記載が間違っているのでしょうか。
>Xls*をXlsになおせばよいだけでいいでしょうか。
そう思ったらそのようにご自分の手をまず動かして,何でもやってみてください。
間違ったパスを記入したときは,「エラーにもならず何も起こらないで,ただマクロが終わる」ように作ってあります。
間違った拡張子を記入したときは,それなりに違うマクロの行で違う警告が表示され,対処を間違ったことがわかります。
そうやって試してみたけどやっぱりご自分の手に負えないことがわかってから,改めて
「自分でこういう具合に手直したこのマクロを実行してみました」
「そうしたら,この行でこのエラーが起こりました」
「その時に開いたブックやシートの具体的な様子はこれこれでした」
のように,その時の様子を具体的に目に見えるように書き添えて,追加のご相談を投稿するようにしてみてください。
No.1
- 回答日時:
準備:
集計用ブックに「集計」という名前のシートを用意しておく
集計シートの1行目にアナタの言うラベル行を作成する
2行目以下は空にして備えておく
手順:
集計ブックを開く
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
当然ですがファイルの保存場所は★の行に適切に記入すること
sub macro1()
dim myPath as string
dim myFile as string
mypath = "c:\test\" ’★
myfile = dir(mypath & "*.xls*")
do until myfile = ""
workbooks.open mypath & myfile
worksheets("Sheet1").activate
range("A2:D" & range("A65536").end(xlup).row).copy _
destination:=thisworkbook.worksheets("集計").range("A65536").end(xlup).offset(1)
activeworkbook.close false
myfile = dir()
loop
end sub
ファイルメニューから終了してエクセルに戻る
ALT+F8を押してマクロを実行する。
この回答への補足
ちなみにexcelのバージョンを誤って投稿していました!
Excel2003だったのですが、
この場合は、
Xls*をXlsになおせばよいだけでいいでしょうか。
keithinさん
ありがとうございます!!!
試してみましたが、
「インデックスが有効範囲にありません」
と表示されてしまいます。
やはり★の部分の記載が間違っているのでしょうか。
初歩的な質問で申し訳ありません。
★部分は、すべてのBOOKが入っているフォルダの場所ですよね?
C:\Users\私の名前\Desktop\A\のような形で入れたのですが、間違いでしょうか。
(Aというフォルダがデスクトップにあり、その中にすべていれています(集計シートBOOKも含))。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[Excel]ADODBでNull変換されて...
-
VBAで別のブックにシートをコピ...
-
VBA シート名が一致した場合の...
-
VBAで別ブックのシートを指定し...
-
VBA シートをコピーする際に Co...
-
【ExcelVBA】インデックスが有...
-
2つ目のコンボボックスが動作...
-
VBS Bookを閉じるコード
-
【ExcelVBA】zip圧縮されたCSV...
-
エクセル vba ある検索値を別ブ...
-
VBA 実行時エラー 2147024893
-
VBA 別ブックからコピペしたい...
-
【マクロ】違うフォルダにある...
-
ワイルドカード「*」を使うとう...
-
[Excel VBA] 複数のサブフォル...
-
VBSでExcelのオープン確認
-
VBA コードを実行すると画面が...
-
Excelブックがアクティブになっ...
-
別ブックからの取込み保存エラー
-
エクセルVBAでテキストボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
【マクロ】AブックからBブック...
-
【ExcelVBA】インデックスが有...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBS Bookを閉じるコード
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【マクロ】違うフォルダにある...
-
[Excel]ADODBでNull変換されて...
-
VBAで複数のブックを開かずに処...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
vbaでvbaProjectのパスワード解...
おすすめ情報