• ベストアンサー

エクセル・マクロ

(同じフォルダの)複数のブックの中に複数のシートがあり、シートの名前が(一部)共通しています(例:赤組のA、赤組のB・・・)。別のブックに、同じ名称(例:赤組)を含むシートをコピーしてまとめたい(シート1が赤組のA、シート2が赤組のB・・・)のですが、どのようなマクロを記すれば良いでしょうか。宜しくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

1)どんなファイルがそもそもあるのか調べる 2)調べたファイルを開く 3)シート名を調べる 4)該当したらコピーする といったマクロを書きます。 sub macro1()  dim myPath as string  dim myFile as string  dim target as workbook  dim myred as workbook  dim w as worksheet  mypath = "C:\test\"  myfile = dir(mypath & "*.xls")  on error goto addnewred  do until myfile = ""  set target = workbooks.open(filename:=mypath & myfile)  for each w in activeworkbook.worksheets  if w.name like "赤組*" then  w.copy after:=myred.worksheets(myred.worksheets.count)  end if  next  target.close false  myfile = dir()  loop  exit sub addnewred:  w.copy  set myred = activeworkbook  resume next end sub #実はこうでしたとか,ついでにあれもこれもどれもやってくださいとかは,一切無しで。

shtokk2778
質問者

お礼

大変助かりました!ありがとうございました。

その他の回答 (2)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

私の前回の回答ですが、理解していただけたのでしょうか? マクロの記録で、ある程度のマクロを作成して、それを発展させていけばOKです。 コピー元のブックのシート名の順序に規則性があれば、 繰り返し命令など、使用できますし、全てのシート名が明記されていませんので、 ここは、いわゆるベタなやり方がいいでしょう。 すべての処理が完成したら、次のステップとして、繰り返し命令などで、すっきりさせる ことを考えます。 Windows("ブック1").Activate Sheets("1組A").Select Sheets("1組A").Copy Before:=Workbooks("1組.xls").Sheets(1)  ここまでが、1ブロックです。2ブロック目移行は、最後のSheets(1) をSheet(2)のように増やしていきます。 1組が終わったら、2組以降も、同じように記述します。  

shtokk2778
質問者

お礼

大変助かりました!ありがとうございました。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

やりたいことを私なりに以下のように解釈しました。   ブック1(1組) シート1(A) シート2(B) シート3(C)   ブック1(2組) シート1(A) シート2(B) シート3(C)   ブック1(3組) シート1(A) シート2(B) シート3(C)    →集計ブック(集計) シート1(1組A) シート2(2組A) シート3(3組A) シート4(1組B)・・・・・・ 以上で宜しければ、   1)シートのコピー(コピー先:集計ブック)   2)コピーしたシート名の変更 をマクロの記録で作成してみてください。 以下、実行結果 Windows("1組.xls").Activate Sheets("A").Select Sheets("A").Copy Before:=Workbooks("集計.xls").Sheets(1) Sheets("A").Select Sheets("A").Name = "1組A" Range("J32").Select Windows("2組.xls").Activate Sheets("A").Select Sheets("A").Copy Before:=Workbooks("集計.xls").Sheets(2) Sheets("A").Select Sheets("A").Name = "2組A" Range("O11").Select  

shtokk2778
質問者

補足

早速のご教授、ありがとうございます。 実行したい事は、以下のようになります。 宜しくお願いいたします。 同じフォルダ内の、 ブック1  シート1(1組A) シート2(3組B) シート3(4組C)・・・ ブック2  シート1(1組D) シート2(2組E) シート3(3組F) シート4(4組G)・・・ ブック3  シート1(2組H) シート2(5組I)・・・ ブック4  シート1(1組J) シート2(3組k) シート3(5組L)・・・ ブック5~50くらい・・・ → 集計(シート名の一部が“1組”であるシートを、別ブック1組にコピーする) 別ブック1組  シート1(1組A) シート2(1組D) シート3(1組J)・・・ ※別ブック2組 以降、以下同文。別ブックは、1組から15組まであります。

関連するQ&A

  • エクセルのマクロを使ってシートごとに名前をつけて保存したい

    マクロ初心者です。宜しくお願いします。 1つのブックにシートが複数あります。 それぞれシートをコピーして新しいブックを作成し そのブックに名前をつけて保存したいです。 例えばブック名が「売上管理」でそのシートが「A店」「B店」「C店」と3シートあるとします。 シート名:A店を他のブックにコピーしてマイドキュメントに名前を付けて 保存する場合のマクロを教えてください。 ちなみにその際のブック名は「シート名+任意のセル(D2)」と できれば一番助かります。 ちなみにD2のセルにはToday関数が入ってます。

  • エクセル2000のマクロについて教えて下さい。

    いつも お世話になっております。 マクロにはこだわってはいませんが、 a1:a1000 まで名称があります。 セルb1に一部の名前を入力したら a1:a1000の間に同じ名称があった 場合c1に表示できないでしょうか? ただし 複数があった場合はc1:c・・・・で表示したいので マクロではないとできないかなと思っています。 すみませんがよろしくお願いします。

  • Excelのマクロについて質問です。

    ブックAのシートaの印刷に関する設定を、別のブックBのシートbにコピーするマクロを教えていただけませんか? 印刷に関する設定には、ページ設定で設定されるすべての情報です。

  • 離れたセルのリンク貼り付けを行うためのマクロについて

    ブック(1)のシート(1)にある複数の離れたセル(B2,D2,C3,F3,B4:F4)をコピーし、別ブックのシート(1)のセル(B2,D2,C3,F3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)はイントラの共有フォルダ上の同一階層に置いてあります。 このブック(1)と同一フォーマットのブックが複数存在し、上記同様にブック(2)の離れたセルをコピーして別ブックのシート(2)のセルへリンク貼り付け。 続いて、ブック(3)の同じセルをコピーし別ブックのシート(3)へリンク貼り付けと言うように、同じセルをコピーし別シートの同じセルへリンク貼り付けの作業を繰り返し行います。 まったく同じ位置のセルをコピー&リンク貼り付けを繰り返し行いたいので、マクロを使って自動実行させたいと思っています。 離れたセルのリンク貼り付けは出来ないのかもしれないですが、アドバイスを頂けると助かります。 宜しくお願い致します。

  • ブックA(マクロ含む)をコピーしたブックBを・・

    こんにちは。過去の質問を検索しましたが、見つけられないので失礼します。 Aというブックにa,b,c,dというシートがあります。 これらのシートは全て同じマクロを使っています(違うのはセルに入力されている一部の文字や図のみ)。 シートbだけを別のブックにコピー&保存(ブックB)しました。 するとマクロもブックBに保存されますが 保存されたマクロはブックAのものを参照しますので 手元にブックAが無いと、ブックBのマクロは使えません。 しかし、ブックBをメール等で別の人に送信し ブックAが無い人でも同じようにマクロを使えるようにしたいのですが そのようなことは可能でしょうか。 どなたかご回答お願いします。

  • マクロ(エクセルシートコピー先)に関して

    分かりましたら教えてください。 A.xlsのシートBを、新しいブックにコピーし移動するときに、そのブック名が、常にそのシートBのセルC3に入力されている文字の名前にするようにマクロを組みました。(....Filename:Range("C3")としています。) さらにC.xlsのシートDもその新しいブックにコピー移動させるマクロを追加したいのですが、コピー先をどのように指定すればいいのでしょうか。。

  • エクセルのマクロは超初心者のため、難しいことは全く分かりません。

    エクセルのマクロは超初心者のため、難しいことは全く分かりません。 よろしくお願いいたします。  m(_ _)m 同じbook内に複数のsheetがあります。 そのsheetは同じ型式のデータベースなのですが、sheetによって行が違います。 そのsheetのデータを一つのシートにコピー(一番上の先頭行はデータベースの名称でコピーしたくありません) をして一覧でまとめたいのですが、方法がわかりません。 sheet数が多いので、一つずつコピー→ペーストをするのが大変なので…どうぞよろしくお願いします。

  • マクロについて教えてください。

    マクロについて教えてください。 Aと言うブックがあります。 それと同じフォルダ内に複数のブックがあります。 その複数のブックからAに、コピーして貼り付けして…と作業を記録しましたが、エラーになってしまいます。 複数のブックはマクロ実行時、Aと一緒に開いてないといけないのでしょうか?

  • エクセル2002 複数シートの一括変更

    エクセル初心者ですので、説明が長く解りづらいと思いますが、困っていますので回答よろしくお願いします。 「名称」「所在」「日付」の共通した項目のある複数のシート「Aシート」「Bシート」「Cシート」を一つのブック(仮にファイル名ブック1とします)にまとめています。AシートのA1セル、BシートのA1セル、CシートのA1セルに同じ項目(名称・所在・日付)を入れたい場合、1回の入力で全てのシートの同一項目が変更できるようにBシート、Cシートに「=Aシート!A1」の式を入れ、AシートのA1セルに名称等を記入すればBシート、Cシートの同一項目も一括して書き換わるようにしています。 同一ブックで使っている分には、上記の方法で共通した項目を一括変更できるのですが、別のブックからシートをコピーした場合、「=Aシート!A1」の式がかわってしまいコピーしてきたシートの項目だけが変わらない状態になります。 例えば、ブック1と書式が同じブック2(シートA’、シートB’、シートC’の複数シートで構成され各シートはブック1のシートA・B・Cと同じ書式)がありブック1にブック2のシートB’をコピーした場合シートB’のA1セルは、「=[ブック2.xls]Aシート!A1」となり自動的にこのシートの項目が変換されません。このとき、[ブック2.xls]の部分だけを毎回消して使っていますが、シートが増えると作業時間もかかりますし、複数のスタッフで使う場合この使い方をそれぞれに説明する必要があり困っています。 解りづらい説明で申し訳ありませんが回答よろしくお願いします。

  • エクセルマクロで他のブックを複製するには?

    件名の操作ができるマクロを書きたいのですが、どなたか教えて頂けるでしょうか。 エクセル2007で、マクロで同フォルダにある別のブックそのものをコピーし、 同フォルダに複製してできたブックに別名をつけて保存するという作業をしたいと思っております。 別ブックからシート情報をコピーする方法などは見つかったのですが、 他のブックそのものをコピーするという方法が見つかりませんでした。 これが可能な事なのかもわかっていません。 どうぞよろしくお願いします。

専門家に質問してみよう