| 
    
     |  | こんにちは。 以下では、ファイルAのシート1のセルA2から、ファイルBのシート1のセルA2へ、ファイルAのシート1のセルA3から、ファイルBのシート1のセルA3へ、、
 ファイルAのシート1のセルB2から、ファイルBのシート1のセルB2へ、ファイルAシート1のセルB3から、ファイルBのシート1のセルB3へ、、、、
 ファイルAのシート1のセルC2から、ファイルBのシート1のセルC2へ、ファイルAのシート1のセルC3から、ファイルBのシート1のセルC3へ、、、、
 ファイルAのシート1のセルD2から、ファイルBのシート1のセルD2へ、ファイルAのシート1のセルD3から、ファイルBのシート1のセルD3へ、、、、
 と文字列を移しています。
 
 ファイルBの1行目はタイトル行です。
 
 このときたとえばファイルAのシート1のセルB2に文字列が入っていないと、ファイルBのシート1のセルB2に(ブランクのままでよいのに)ファイルBのシート1のセルB1のタイトルが入ってしまいます。どこがいけないからでしょうか?
 
 ロジック自体もな何かもっとループか何かで洗練させることできるでしょうか?
 ご教示ください。
 
 Sub Test()
 
 Dim v
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("A2", _
 .Cells(.Rows.Count, "A").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("A2").Resize(UBound(v), 1).Value = v
 .Range("A2").Value = v
 End With
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("B2", _
 .Cells(.Rows.Count, "B").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("B2").Resize(UBound(v), 1).Value = v
 .Range("B2").Value = v
 End With
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("C2", _
 .Cells(.Rows.Count, "C").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("C2").Resize(UBound(v), 1).Value = v
 .Range("C2").Value = v
 End With
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("D2", _
 .Cells(.Rows.Count, "D").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("D2").Resize(UBound(v), 1).Value = v
 .Range("D2").Value = v
 End With
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("E2", _
 .Cells(.Rows.Count, "E").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("E2").Resize(UBound(v), 1).Value = v
 .Range("E2").Value = v
 End With
 
 With Workbooks("A.xls").Worksheets("Sheet1")
 v = .Range("F2", _
 .Cells(.Rows.Count, "F").End(xlUp)).Value
 End With
 With Workbooks("B.xls").Worksheets("Sheet1")
 .Range("F2").Resize(UBound(v), 1).Value = v
 .Range("F2").Value = v
 End With
 
 End Sub
 
 |  |