[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『項目を指定し、シートに分割する』(みみ)
下記コードは、B列の項目ごとにシートを作成するマクロとなります。 VBについては素人となりますので、ネットから調べ引用していますが、 (Sheet1)と同じ列・行の幅、またページレイアウトまで同じように別シートを 作成するにはどうしたらいいかご教示いただけないでしょうか? あくまで素人なので質問不足もあるかもわかりませんが、よろしくお願いします。
Sub test1()
Dim i As Long
Dim lastRow As Long
Dim mySh As Worksheet
Dim myFlg As Boolean
Dim myRow As Long
Dim myKey As String
lastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastRow
'----振り分け先のシートが存在するか否かをチェック
For Each mySh In Worksheets
myFlg = False
myKey = Worksheets("Sheet1").Range("B" & i).Value
If mySh.Name = myKey Then
myFlg = True
mySh.Cells.Delete
Exit For
End If
Next mySh
'----振り分け先のシートがなかったらシートを追加する
If myFlg = False Then
ActiveWorkbook.Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = myKey
End If
'----列見出しをコピー&貼り付け
Worksheets("Sheet1").Range("A1:P1").Copy Worksheets(myKey).Range("A1")
Next i
'----データを転記する
For i = 2 To lastRow
myKey = Worksheets("Sheet1").Range("B" & i).Value
If myKey <> "" Then
myRow = Worksheets(myKey).Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("Sheet1").Range("A" & i & ":P" & i).Copy _
Worksheets(myKey).Range("A" & myRow & ":P" & myRow)
End If
Next i
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>(Sheet1)と同じ列・行の幅、またページレイアウトまで同じように別シートを作成するには Sheet1をコピーして、名前を変更して、全セルをクリアします。
(´・ω・`) 2020/06/01(月) 15:19
シーツ数は、100を超えるので出来れば、マクロでなんとか行い効率をあげたのですが。 (みみ) 2020/06/01(月) 19:29
ActiveWorkbook.Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = myKey
(マナ) 2020/06/01(月) 20:18
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.