Excel VBA質問箱 IV

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

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


1663 / 76734 ←次へ | 前へ→

【80719】Re:データを横にペーストしていきたい
回答  γ  - 19/4/21(日) 21:26 -

引用なし
パスワード
   配列を使ったコード例。(色々な書き方があるので一例として)

Sub test2()
  Dim lastRow As Long
  Dim mysize As Long
  Dim mat()  As Variant
  Dim v    As Variant
  Dim k    As Long
  Dim j    As Long
  Dim m    As Long
  Dim kk   As Long
  
  Dim t    '経過時間計測用
  t = Timer
  
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row
  
  'できあがりの表の行数
  mysize = WorksheetFunction.Ceiling(lastRow / 3, 1)
  
  '結果一時保持用配列の大きさを宣言
  ReDim mat(1 To mysize, 1 To 9)
        
  '元データを配列vに取り込む
  v = Range("A1").CurrentRegion.Resize(mysize * 3, 3).Value

  For k = 1 To mysize * 3 Step 3
    kk = Int((k - 1) / 3) + 1
    For j = 1 To 3
      For m = 1 To 3
        mat(kk, (j - 1) * 3 + m) = v(k + j - 1, m)
      Next
    Next
  Next

  '纏めて書込む
  [E1].Resize(mysize, 9).Value = mat
  
  Debug.Print "配列利用 "; Timer - t
End Sub

8 hits

【80714】データを横にペーストしていきたい リョウ 19/4/21(日) 1:29 質問[未読]
【80715】Re:データを横にペーストしていきたい γ 19/4/21(日) 6:22 回答[未読]
【80716】Re:データを横にペーストしていきたい リョウ 19/4/21(日) 11:13 質問[未読]
【80717】Re:データを横にペーストしていきたい γ 19/4/21(日) 14:10 回答[未読]
【80718】Re:データを横にペーストしていきたい リョウ 19/4/21(日) 14:23 お礼[未読]
【80719】Re:データを横にペーストしていきたい γ 19/4/21(日) 21:26 回答[未読]
【80720】Re:データを横にペーストしていきたい リョウ 19/4/22(月) 20:30 お礼[未読]

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