Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2615 / 13646 ツリー ←次へ | 前へ→

【66899】A列からC列までを行に入れ替え、一定数で次の行に移していく。 マルボロ 10/10/16(土) 10:53 質問[未読]
【66900】Re:A列からC列までを行に入れ替え、一定数... Hirofumi 10/10/16(土) 11:18 回答[未読]
【66902】Re:A列からC列までを行に入れ替え、一定数... マルボロ 10/10/16(土) 11:41 お礼[未読]
【66901】Re:A列からC列までを行に入れ替え、一定数... kanabun 10/10/16(土) 11:34 発言[未読]
【66903】Re:A列からC列までを行に入れ替え、一定数... マルボロ 10/10/16(土) 12:00 お礼[未読]

【66899】A列からC列までを行に入れ替え、一定数で...
質問  マルボロ  - 10/10/16(土) 10:53 -

引用なし
パスワード
   A列からC列までの3列をD列から1行に貼り付けていき、L列まで行ったら、
D列の2行目から貼り付けていく方法を考えています。

a a 1
b b 2
c c 3
d d 4
e e 5

これを 
   a a 1 b b 2 c c 3
   d d 4 e e 5

いろいろなサイトを見て、次のようにつくってみましたが、行を変える方法がわかりません。
どなたかよろしくお願いいたします。

Sub Macro1()
  Dim RowEnd As Long, i As Long, ii As Long, iii As Long, iiii As Long  
    ii = 1
    iii = 4
    iiii = 1    
    RowEnd = Range("A65536").End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 1 To RowEnd
    cells(i, 1).Resize(, 3).Cut Destination:=cells(iiii, iii)
    Application.CutCopyMode = False
      iii = iii + 3    
    Next i  
  Application.ScreenUpdating = True
End Sub

【66900】Re:A列からC列までを行に入れ替え、一定...
回答  Hirofumi  - 10/10/16(土) 11:18 -

引用なし
パスワード
   Sub Macro1()

  Dim RowEnd As Long
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Dim l As Long
  
  Application.ScreenUpdating = False
  
  j = 1
  k = 4
  l = 1
  RowEnd = Range("A65536").End(xlUp).Row
  For i = 1 To RowEnd
    Cells(i, 1).Resize(, 3).Cut Destination:=Cells(l, k)
'    Application.CutCopyMode = False
    k = k + 3
    If k >= 12 Then
      k = 4
      l = l + 1
    End If
  Next i
  
  Application.ScreenUpdating = True
  
End Sub

【66901】Re:A列からC列までを行に入れ替え、一定...
発言  kanabun  - 10/10/16(土) 11:34 -

引用なし
パスワード
   ▼マルボロ さん:

>A列からC列までの3列をD列から1行に貼り付けていき、L列まで行ったら、
>D列の2行目から貼り付けていく方法を考えています。

Itemプロパティをつかうと
こんな風に セル範囲(複数行×複数列)内の位置を移動できます。

↓例は Cut&Copyでなく、値Copy ですが。

  Dim c As Range
  Dim r As Range
  Dim i As Long
  
  Application.ScreenUpdating = False
  Set r = Range("D1:L1").Resize(100)
  r.ClearContents
  
  For Each c In Range("A1", Cells(Rows.Count, 3).End(xlUp))
   i = i + 1
   r.Item(i).Value = c.Value
  Next
  Application.ScreenUpdating = True

【66902】Re:A列からC列までを行に入れ替え、一定...
お礼  マルボロ  - 10/10/16(土) 11:41 -

引用なし
パスワード
   ▼Hirofumi さん:

早々に教えていただき、ありがとうございました。
早速使わせていただき、希望通りの結果になりました。
先週から訳の分からないものに取り掛かってしまったと思いながら、かなり煮詰まっていました。
ので、非常に嬉しいです。
重ねてお礼申し上げます。

【66903】Re:A列からC列までを行に入れ替え、一定...
お礼  マルボロ  - 10/10/16(土) 12:00 -

引用なし
パスワード
   ▼kanabun さん:

>Itemプロパティをつかうと
>こんな風に セル範囲(複数行×複数列)内の位置を移動できます。
 
ご丁寧にありがとうございます。
色々なケースに合わせて勉強させていただきたいと思います。
kanabunさんのご親切にお礼申し上げます。

2615 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free