Excel VBA質問箱 IV

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

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


12942 / 76734 ←次へ | 前へ→

【69304】大量セル書き込みの高速化
質問  えすたろう  - 11/6/23(木) 15:28 -

引用なし
パスワード
   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


動作はきちんと動くのですが、スピードがあまりに遅いのです。

セルに順番に書き込んでるからなのだと思いますが、高速化する方法はないでしょうか?

よろしくお願いします。
3 hits

【69304】大量セル書き込みの高速化 えすたろう 11/6/23(木) 15:28 質問
【69305】Re:大量セル書き込みの高速化 neptune 11/6/23(木) 16:04 回答
【69309】Re:大量セル書き込みの高速化 えすたろう 11/6/23(木) 20:09 お礼
【69313】Re:大量セル書き込みの高速化 UO3 11/6/23(木) 22:43 発言
【69306】Re:大量セル書き込みの高速化 UO3 11/6/23(木) 16:21 回答
【69308】Re:大量セル書き込みの高速化 えすたろう 11/6/23(木) 20:08 お礼
【69310】Re:大量セル書き込みの高速化 UO3 11/6/23(木) 21:24 回答
【69311】Re:大量セル書き込みの高速化 UO3 11/6/23(木) 21:42 発言
【69334】Re:大量セル書き込みの高速化 momo 11/6/27(月) 14:34 発言
【69337】Re:大量セル書き込みの高速化 UO3 11/6/27(月) 15:45 発言
【69338】Re:大量セル書き込みの高速化 momo 11/6/27(月) 16:02 発言

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