|
VBA触り始めの初心者です。
見よう見真似、独学で取り組んでいるので
至らぬ点が多くあるかとは思いますがよろしくお願いいたします。
本題ですが、
会社での作業指示表(誰が何時に何をするかといったような横帯グラフのようなもの)
がグループの主任とグループ1担当、グループ2担当と
それぞれ別々のブックで出力され、毎月その3グループ分を
1つのブックにまとめ1日1枚の紙に出力して見やすくしているのですが、
これを自動化したく下記のマクロを組んでみました。
主任のシートを集約元へ全てコピーする段階はクリアできたので省いています。
Sub WS()
' グループ1のブックをアクティブ化
Dim myBook As Workbook
For Each myBook In Workbooks
If myBook.Name Like "WS_0112_*.xls" Then
myBook.Activate
Exit For
End If
Next
' グループ1のブックをシート毎にチェック
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
' グループ1の出勤人数のチェック cnt=出勤人数 cnt2=選択範囲閉め
Set MyColumns = Columns("B")
cnt = WorksheetFunction.CountA(MyColumns)
Dim cnt2 As Long
cnt2 = cnt * 2 + 17
' 集約元へコピーする範囲の指定及びコピー
Rows(18 & ":" & cnt2).Copy
' グループ1のシート名を宣言
Dim g1name As String
g1name = ActiveSheet.Name
' 集約元のブックをアクティブ化
Dim myBook2 As Workbook
For Each myBook2 In Workbooks
If myBook2.Name Like "集約用*" Then
myBook2.Activate
Exit For
End If
Next
' 集約元のブックをシート毎にチェック
Dim WS2 As Worksheet
For Each WS2 In Worksheets
WS2.Activate
' 集約元のシート名を宣言
Dim totalname As String
totalname = ActiveSheet.Name
Dim ss As Long
If totalname = g1name Then
If Range("A18") = "1" Then
ss = 1
Else
ss = 0
End If
If ss = 1 Then
Range("A22").PasteSpecial
Else
Range("A20").PasteSpecial
End If
End If
Exit For
Next
Next
End Sub
まだ主任のブックとグループ1のブックをまとめようとしている段階ですが、
それでもシート1枚目(月の1日目)しかうまくコピペができません。
コピー元の最終シートが範囲選択されてコピーされているところまでは動いてます。
1枚目以降も集約元のシートへペーストしたいのですが、
改善点を教えていただけると助かります。
わかりにくい説明かもしれませんが、どうぞよろしくお願いいたします。
|
|