- ベストアンサー
エクセルマクロ データの抽出とコピーについて
- エクセルマクロを使って、特定のデータを別のシートに抽出しコピーする方法について教えてください。
- 抽出したデータに外枠罫線をつけ、塗りつぶしをなしにしたいです。
- また、一部の行をコピーして挿入する方法も知りたいです。最終的には別々のブックに分けたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データシートをインデックス(あ行 等)で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
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
#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 を挿入します どこに挿入すればうまくいくかは、ご自身で考えて試してみてください (そうでないと丸投げになってしまいますから…)
お礼
親切に回答していただき、本当にありがとうございました。 おかげさまで、列幅貼り付けもタイトル挿入もなんとか組み込むことができました。 これから、もっともっと勉強していきたいと思います。
補足
早々のご回答、本当にありがとうございます! とても助かりました。勉強になります! よろしければ追加で教えていただきたいのですが、 「データ」シートから抽出して、新規シートに貼り付ける時に、 列幅も同時に貼り付けることは可能でしょうか? また、別Bookに移す前に「sheet1」の1~2行(タイトル名が書いてあります)をコピーして、 「あ行」の1~2行目に挿入したいのですが、どうすればよいのでしょうか?