| 
    
     |  | VBA初心者です。よろしくお願いします。 
 出勤時刻、退勤時刻を時間と分にわける作業を作成しています。
 
 出勤時刻 退勤時刻 出勤/時間 出勤/分 退勤/時間 退勤/分
 1 0930   1830
 2 0930   1830
 3 0930   1830
 ・
 ・
 ・
 
 こうした行が36000件ほどあります。
 
 これをそれぞれ
 
 出勤時刻 退勤時刻 出勤/時間  出勤/分 退勤/時間 退勤/分
 1 0930   1830   09     30    18     30
 2 0930   1830   09     30    18     30
 3 0930   1830   09     30    18     30
 ・
 ・
 ・
 
 といった形に分離したいと思っています。
 
 そこで以下のようなVBAを作成しました。
 
 Private Sub 時刻変換_Click()
 
 
 Dim shu As Variant '出勤時刻
 Dim tai As Variant '退勤時刻
 Dim shuhour As Variant '出勤時間
 Dim shumini As Variant '出勤分
 Dim taihour As Variant '退勤時間
 Dim taimini As Variant '退勤分
 Dim shutai As Variant '配列
 Dim gyo As Variant
 
 gyo = 2
 
 Do While Worksheets("貼り付け").Cells(gyo, 1).Value <> ""
 
 With Worksheets("貼り付け")
 shu = .Cells(gyo, 4).Offset(0, 0).Value '出勤時刻の取り込み
 tai = .Cells(gyo, 5).Offset(0, 0).Value '退勤時刻の取り込み
 End With
 
 With Worksheets("貼り付け")
 shutai = Array(Left(shu, 2), Mid(shu, 3, 2), Left(tai, 2), Mid(tai, 3, 2))
 End With
 
 With Worksheets("貼り付け")
 .Cells(gyo, 8).Offset(0, 0).Value = shutai(0) '出勤時間の貼り付け
 .Cells(gyo, 9).Offset(0, 0).Value = shutai(1) '出勤分の貼り付け
 .Cells(gyo, 10).Offset(0, 0).Value = shutai(2) '退勤時間の貼り付け
 .Cells(gyo, 11).Offset(0, 0).Value = shutai(3) '退勤分の貼り付け
 End With
 
 gyo = gyo + 1
 
 Loop
 
 MsgBox "完了"
 
 End Sub
 
 
 動作はきちんと動くのですが、スピードがあまりに遅いのです。
 
 セルに順番に書き込んでるからなのだと思いますが、高速化する方法はないでしょうか?
 
 よろしくお願いします。
 
 |  |