| 
    
     |  | http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=37121;id=excel この続きです。続きに質問しようと試みたのですがどうしてもできなかったので
 新しく投稿しました。すみません。
 
 もうひとつ質問させてください。
 コピー元のセルが離れていて、コピー先のセルが連続している場合、
 教えていただいた方法でできるのですが、コピー先もセルが離れていると
 教えていただいた方法でもできません。例えば、コピー元がA1,B1とC3のとき
 コピー先がA10、B10とC12のとき次のようにすると
 Dim A As Range
 Dim B As Range
 Dim C As Range
 Dim I As Long
 
 Set A = Range("A1:B1,C3")
 Set B = Range("A10:B10,C12")
 
 I = 1
 For Each C In A
 B(I).Value = C.Value
 I = I + 1
 Next C
 
 C3はA11にコピーされてしまいます。
 
 そこで、考えた結果次のようにしてみました。
 Dim A As Range
 Dim B As Range
 Dim C As Range
 Dim D As Range
 Dim WK As Range
 Dim I As Long
 Dim J As Long
 
 Set A = Range("A1:B1,C3")
 Set WK = Range("A20:C20")
 Set B = Range("A10:B10,C12")
 
 I = 1
 For Each C In A
 WK(I).Value = C.Value
 I = I + 1
 Next C
 
 J = 1
 For Each D In B
 D.Value = WK(J).Value
 J = J + 1
 Next D
 
 すなわち、連続するワークエリアを使用して、ステップ1として
 ワークエリアに転記する。ステップ2としてワークエリアから
 目的のコピー先に転記する。これで、目的は果たせます。
 何の問題も無いと思われますが、どうも、2ステップ踏むことと
 ワークエリアを使用するのが少しダサいような気がします。
 1ステップでできる方法がもしあるようなら教えてください。
 私の頭ではこれ以外思いつきません。
 
 |  |