| 
    
     |  | Hirokさん、こんにちは 
 Hirokさん=YN63さんでしょうか?
 
 >⇒  ここでのWith Sheetsは転記先のシートを指すのですか?
 その通りです。
 
 >   r.Offset(,1).valueは"集計表"での営業所名の列で、シートの
 >   異なるもの(内容)が同居して、よくコードが成り立つのが不思議です。
 >   どのように理解すると良いのでしょう?
 たとえば、以下のようなコードにすると分かりやすいでしょうか?
 For Each〜Next文でmyrにセットしたデータ範囲をA4セルから順に変数に
 取得してループしています。
 そのループの中で都度シート名をセットしていますので、転記先のシート
 名の違っているものでも転記できているのです。
 
 文章が思いっきり苦手な為、分かりにくいかもしれません。
 すいません・・・^^;
 
 Sub 順次選択貼付け()
 Dim r As Range
 Dim myr As Range
 Dim dteDate As Date
 Dim 転記先シート名 As String
 
 With Sheets("集計表")
 '日付の入力のある範囲をセット
 Set myr = .Range("A4", .Range("A65536").End(xlUp))
 '日付を変数に格納
 dteDate = .Range("A1").Value
 End With
 
 '日付の入力のある範囲を1セルづつ繰り返し変数rにセットする
 For Each r In myr
 '営業所名がNullでない場合実行
 If r.Offset(, 1).Value <> "" Then
 '転記先のシート名が=営業所名なので日付の1列右のセルの値を
 'シート名として指定
 '転記先のシート名を取得
 転記先シート名=r.Offset(,1).Value
 With Sheets(転記先シート名)
 'With Sheets(r.Offset(, 1).Value)
 '指定シートのA列最終行+1に日付を転記
 .Range("A65536").End(xlUp).Offset(1).Value = dteDate
 '指定シートのC列最終行+1に売上高を転記
 .Range("C65536").End(xlUp).Offset(1).Value = r.Offset(, 2).value
 End With
 End If
 Next
 End Sub
 
 |  |