• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロ 抽出したデータを別のシートへコピーしたい)

エクセルマクロ データの抽出とコピーについて

このQ&Aのポイント
  • エクセルマクロを使って、特定のデータを別のシートに抽出しコピーする方法について教えてください。
  • 抽出したデータに外枠罫線をつけ、塗りつぶしをなしにしたいです。
  • また、一部の行をコピーして挿入する方法も知りたいです。最終的には別々のブックに分けたいです。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

データシートをインデックス(あ行 等)でFilterしてそれぞれを別ブックにコピーするマクロのサンプルです。100%期待する結果になるところまでの自信はありませんが、ご参考まで。 Sub Macro2() Dim wb As Workbook Dim str() As String Dim idx As Integer  Set wb = ThisWorkbook  str = Split("あ行,か行,さ行,た行,な行,は行,ま行,や行,ら行,わ行", ",")  Application.ScreenUpdating = False  With wb.Worksheets("データ")   If .AutoFilterMode Then    .Cells.AutoFilter '一旦AutoFilterを解除し   End If   .Columns("A:A").AutoFilter 'A列に再度AutoFilterを設定   For idx = 0 To UBound(str)    .Columns("A:A").AutoFilter Field:=1, Criteria1:=str(idx)    .Range(.Range("A1"), .Cells.SpecialCells(xlLastCell)).Copy    Worksheets.Add 'シートを追加    ActiveSheet.Name = str(idx)    ActiveSheet.Paste    ActiveSheet.Cells.Interior.ColorIndex = xlNone    Range(Range("A1"), Cells(1, 1).SpecialCells(xlLastCell)) _      .Borders.LineStyle = xlContinuous    Range("A1").Select    ActiveSheet.Move '追加したシートを別Bookに移す   Next idx   .Cells.AutoFilter   wb.Activate  End With  Application.ScreenUpdating = True End Sub

kecharou
質問者

補足

早々のご回答、本当にありがとうございます! とても助かりました。勉強になります! よろしければ追加で教えていただきたいのですが、 「データ」シートから抽出して、新規シートに貼り付ける時に、 列幅も同時に貼り付けることは可能でしょうか? また、別Bookに移す前に「sheet1」の1~2行(タイトル名が書いてあります)をコピーして、 「あ行」の1~2行目に挿入したいのですが、どうすればよいのでしょうか?

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です >列幅も同時に貼り付けることは可能でしょうか?  .Columns("A:Z").Copy  Activesheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths を挿入します >「sheet1」の1~2行(タイトル名が書いてあります)をコピーして、 >「あ行」の1~2行目に挿入したいのですが、  .Rows("1:2").Copy  Activesheets.Range("A1").Insert Shift:=xlDown を挿入します どこに挿入すればうまくいくかは、ご自身で考えて試してみてください (そうでないと丸投げになってしまいますから…)

kecharou
質問者

お礼

親切に回答していただき、本当にありがとうございました。 おかげさまで、列幅貼り付けもタイトル挿入もなんとか組み込むことができました。 これから、もっともっと勉強していきたいと思います。

関連するQ&A