> 各社員のシートにあるデータの一部(セルC5:C8)を貼り付けたいです。
> 各社員のシートのD列の情報(D6:D43)を順に貼り付けていく。
上記、具体的にどこのセルに貼るか示されていませんので、A2セル以下にそれぞれ貼っています。
また、シート番号は4以降の個人を取得すれば良さそうですが、今後別のシートが増えても良いようにシート名で管理シートと個人シートを判断しています。
Sub シート名取得等()
For I = 1 To Worksheets.Count
Select Case Worksheets(I).Name
Case "シート名一覧", "集計シート", "操作"
Case Else
人数 = 人数 + 1
With Worksheets("シート名一覧").Range("A2").Offset((人数 - 1))
.Offset(0, 0) = Worksheets(I).Name
Worksheets(I).Range("C5:C8").Copy
.Offset(0, 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
End With
With Worksheets("集計シート").Range("A2")
Worksheets(I).Range("D6:D43").Copy
.Offset((人数 - 1) * 38, 0).PasteSpecial Paste:=xlPasteAll
End With
End Select
Next I
End Sub
簡易版です。
sub macro1()
dim i as long
for i = 4 to worksheets.count
worksheets("シート名一覧").range(i-3, "A") = worksheets(i).name
worksheets("シート名一覧").range(i-3, "A").resize(1, 4) = _
application.transpose(worksheets(i).range("C5:C8"))
worksheets("集計シート").range("A6:D43").offset(0, i-2).value = _
worksheets(i).range("D6:D43")
next i
end sub
各シートの具体的にどこに貼りたいとかの情報がありませんので,サンプルをまずはその通り動かして動作確認したあと,きちんとあなたのヤリタイ事に応用してください。
すこし「Excel VBA」の初歩の参考書を1冊手にとって,変数の使い方とか繰り返しやIf Then End Ifなどのプログラムの書き方について,勉強を進める段階に入ったと思ってください。この時点であまりネットの断片的な情報を漁って済まそうとしたり,人任せでなんでも丸投げお願いばっかりやってると,いつまでも出来ないです。
お礼
迅速な答えありがとうございます。 今やってみましたが、うまくいきました。 本当に助かりました。