• ベストアンサー

EXCELで1シートのデータを複数シートにコピー

MSZ006の回答

  • ベストアンサー
  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

マクロですとこんな感じでどうでしょうか。 sheet1のA列に転記したいデータが入っているものとします。ご質問の例ではA3までですが、さらに下まで入っていても動きます。 シートを追加していって、そのシートに転記していきます。 ---------------------------- Sub test() Dim ws As Worksheet Dim LastRow As Long Set ws = Worksheets("sheet1") LastRow = ws.Range("A1").End(xlDown).Row On Error Resume Next Application.DisplayAlerts = False Worksheets("sheet2").Delete Worksheets("sheet3").Delete For i = 1 To LastRow Worksheets.Add after:=Worksheets(Worksheets.Count) ActiveSheet.Name = "sheet(" & i & ")" ActiveSheet.Cells(2, 2) = ws.Cells(i, 1) Next End Sub

bxd00263
質問者

お礼

ありがとうございます

関連するQ&A

  • 複数のブックから特定データ群を新ブックにまとめたい

    こんにちは。 EXCEL2007について、ご教示ください。 EXCEL2007で、複数ブック内の特定シート上にある特定のデータ(複数) を特定ブックにまとめたいのですが、うまくできずに悩んでいます。 <やりたいこと>  ・参照元は特定フォルダ内にある全ファイルが対象(100程度)  ・ブック内の特定シートが対象(シート名は  ・コピー   (1) 元シートのA4~F4セル(セル結合されています)のデータを、     先シートのB2セルへコピー   (2) 元シートのG4~L4(セル結合)のデータを、先シートのC2セル     へコピー   (3) 元シートのG6~R6セルのデータを、先シートのE2セルへコピー  ・コピー2   次ブックを読み込み、1行下(B3、C3、E3)にコピーする。  ・コピー3   以降1行下にコピーし、ファイルが無くなるまで繰り返す。 以上ですが、マクロでできるように教えていただけないでしょうか。 よろしくお願いいたします。

  • 複数のシートを1つのシートにコピーしたい

    VBA初心者です。よろしくお願いします。 【状況】 1つのワークブックの中に『まとめ』という名前のシート、それ以外にコピーしたいシートが複数あります。 コピーしたくないシートもあります。 まとめを一旦クリアし、コピーしたいシートだけをコピーして貼り付けたいです。 まとめシートもコピーしたいシートも、データの入っているセルは"B5"から始まり、M列までの任意の行までデータが入っています。(B5:M?) 【やりたいこと】 コピーしたいシートのみ、データの入っている範囲をコピーして、まとめシートに貼り付けたい。 最終行を取得するVBAはいろいろなサイトを参考に書くことができたのですが、そこから"B5"までの範囲を指定してコピーをするという方法がいまいち分かりません。 参考にしたサイトはA1~特定の範囲のみ選択というものばかりで・・・。 稚拙ながら途中まで書いたコードです。 (1)Sub B5から最終セルの選択とコピー() (2)Range("B65536").End(xlUp).Offset(0, 11).Select (3)Range("B5", ※).Copy (4)End Sub ※に(2)で取得した最終セルを代入したいのですが方法が分からず・・・。 ここでまず躓いてしまっています。 どうかお知恵を貸して下さい。よろしくお願いします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • エクセル 複数シートの値のみコピーで

    こんにちは いつもお世話になっています。 先日、選択した複数のシートを新しいブックに値だけコピーするマクロをこちらで教えていただきました。(関数が入ったシートなのでタブの右クリックからの新規ブックへのコピーでは関数がコピーされてしまうので) 今回、このマクロで失敗するシートがあったので原因を教えてください。 値だけコピーするマクロは以下です。 Sub 値コピー() Dim WS As Worksheet ActiveWindow.SelectedSheets.Copy For Each WS In ActiveWorkbook.Worksheets With WS.Cells .Copy .PasteSpecial Paste:=xlPasteValues End With Next Application.CutCopyMode = False End Sub 失敗するシートにはつぎの関数があります。 A1セルに=REPLACE(CELL("filename",A1),1,FIND(".xlsx]",CELL("filename",A1))+LEN(".xlsx]")-1,) B3セルに=IF(COUNTIF(Sheet2!$1:$1,$A$1),IF(ROWS($3:3)>COUNTIF(OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2),"",COUNTIFS(OFFSET(Sheet1!$C:$C,,MATCH($A$1,Sheet1!$C$1:$G$1,0)-1),">"&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0)),OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2)+1&"位 "&INDEX(Sheet1!$B:$B,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0))&" "&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0))&"点"),"") 別シートのデータから条件に合うものを引き出す関数です。 これらの関数もおしえていただいたもので、まだ理解できていませんので、説明不十分で申し訳ありません。 これらの関数があるシートではなぜ上記のマクロが失敗するのでしょうか。 もちろん、シートのデータを選択、コピーして新規ブックに値のみコピーはできます。 上記のような関数があるシートでも複数選択シートでの値のみコピーができるマクロを教えていただけないでしょうか。 情報不足がありましたら、教えてください。 よろしくお願いします。 エクセル2007

  • Excel データの一部を別シートにコピー

    Excelで、データ行のどこかをクリックし、ボタンを押したとき、その行を別々のシートに分類してコピーさせるマクロを作りたいと思っています。 このとき、コピー先のシートをA列のデータで区別したいのです。 1.クリックした行のA列のセルを判定し、そのセルのデータを読み取る方法 2.読み取ったデータ(文字)を、コピー先シート名に指定する方法 このマクロの記述方法を教えてください。よろしくお願いします。 コピー範囲を指定し、貼り付け先のシートをアクティブにできれば、あとは記録マクロをつないで作るつもりです。

  • 複数シートのデータをまとめたい

    複数のシート(セルの位置関係等は同じ)の中の特定の範囲のデータを 別の一つのシートに集約させたいのですが、どのようにすればよいのでしょうか? 例: シート1に担当者Aが入力した値 シート2に担当者Bが入力した値     ↓ シート3に1、2に入力された値を集約

  • Excelマクロについて(セルのコピー)

    今、マクロで自動的にセルのデータを別シートに貼り付けるというものを作っています。 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub これで、sheet1のA2からsheet2のA1にコピーできるのですが、 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 コピー元セル = "B" & コピー元行 コピー先セル = "B" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub とすると、B2の項目しかコピーされません。複数のセルを一度にコピーするマクロの作り方をご存じの方、ご伝授下さい。

  • シート内の一部のセルを別シートにコピー

    Excelのマクロ(VBA)の記載方法について お分かりになる箇所だけでも結構ですので、 どなたかご教授を願い致します。 シートX   A    B   C  1 data1 data2 data3 2 x   data7 data8 3 data4 data5 data6 4 data7 data8 data9 シート Y   A   B   C    D 1 length 3  (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz  (任意) (任意) (任意) 4 (空白)(任意) (任意) (任意) 上記のような2つのシート(同一Excelファイル内)があって、 シートXの一部のセルを次の条件(1~4)でシートYにコピーしたい場合 1.コピー元の列の数は、シートYの "length"と書かれたセルの右となりの数字   とする(上記では3なので、A,B,C列をコピー対象) 2.コピー元の行の数は、シートXの1~4行目までとするが、   シートXのA列のセルが"x"だったら、その行は全てコピーしない。 3.コピー先(Y)の列は、コピー元(X)の列と一つずれてコピー(BならCに、CならDに) 4.コピー先(Y)の行は、シートYのA列で1行からで始めて空白セルになった行からコピー開始。 (上記では、A列で空白セルのある4行目からコピー) 上記条件で、下記のシートYを作成したいのですが、 この場合どようなマクロ(VBA)で実現できますでしょうか。 コピー結果(シートY)  A     B   C   D 1 length  3  (任意) (任意) 2 xxxx  (任意) (任意) (任意) 3 zzz   (任意) (任意) (任意) 4 (空白) data1 data2 data3 5 (任意) data4 data5 data6 6 (任意) data7 data8 data9

  • 【Excel VBA】指定されたシートに該当のデータをコピーする

    Excel2003を使用しています。 あるセルに入力されている値と同じ名前のシートに、そのセルと同行のデータをコピーするというマクロを作成したいのですが。。。 例えば、Sheet1のC4セルに「1234」(文字列です)と入力されていたら、「1234」シートに、Sheet1のC4セルと同行のデータを貼り付け、Sheet1のC5セルに「1235」と入力されていたら、「1235」シートに、Sheet1のC5セルと同行のデータを貼り付け…といった感じで、Sheet1のC列(C4セル以下)に入力されている値を元に、それぞれのシートへ順番にデータをコピーしたいのです。 うまく表現できなくて、わかりづらいと思いますが、都度補足させていただきますので、よろしくお願いします。

  • EXCELのシート間でのコピー

    元のシートにある特定の範囲を、別な新規のシートにコピーすると 元のセルの幅が、コピー先に反映されずに標準値の幅になってしまいます。住所の様な元では長い幅のセルも、コピー先では狭くなってしまいます。元の幅のままコピーは出来ないのでしょうか?