|    | 
     ▼VBA初心者 さん: 
 
こちらで45000行16列、各セル 16文字 のデータを作成し以下のコードを走らせると、 
こちらの環境で 3秒弱です。 
なので、ステータスバーの表示をするまでもないと思います。(コードではしていません) 
DoEventsも不要です。 
 
ただ、出来上がりのブックは10メガほどになりますね。 
これって、ブックそのものの扱いが重そうですね。 
 
Sub Test() 
  Dim t As Double 
  Dim ws1 As Worksheet 
  Dim ws2 As Worksheet 
  Dim fV As Variant 
  Dim tV() As String 
  Dim i As Long 
  Dim y As Long 
  Dim x As Long 
  Dim j As Long 
  Dim z As Long 
  Dim flg As Boolean 
   
  t = Timer 
   
  Set ws1 = Sheets("Sheet1") 
  Set ws2 = Sheets("Sheet2") 
   
  fV = ws1.Range("A1", ws1.Range("A" & Rows.Count).End(xlUp)).Resize(, 16).Value 
  ReDim tV(1 To UBound(fV, 1), 1 To 16 * 3) 
   
  For i = 1 To UBound(fV, 1) Step 3 
    x = 0 
    z = z + 1 
    For y = i To i + 2 
      If y > UBound(fV, 1) Then 
        flg = True 
        Exit For 
      Else 
        For j = 1 To UBound(fV, 2) 
          x = x + 1 
          tV(z, x) = fV(y, j) 
        Next 
      End If 
    Next 
    If flg Then Exit For 
  Next 
         
  ws2.Range("A1").Resize(z, UBound(tV, 2)).Value = tV 
   
  MsgBox Timer - t 
   
End Sub 
 
 | 
     
    
   |