Excel VBA質問箱 IV

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

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


7248 / 13644 ツリー ←次へ | 前へ→

【40199】2002から2003に移行して 仲ちゃん 06/7/8(土) 18:27 質問[未読]
【40218】Re:2002から2003に移行して Ned 06/7/9(日) 11:26 発言[未読]
【40230】Re:2002から2003に移行して 仲ちゃん 06/7/9(日) 23:11 お礼[未読]
【40337】Re:2002から2003に移行して 仲ちゃん 06/7/11(火) 19:42 お礼[未読]

【40199】2002から2003に移行して
質問  仲ちゃん E-MAIL  - 06/7/8(土) 18:27 -

引用なし
パスワード
   エクセルを2002から2003に移行したところ下記マクロの動きがとんでもなく緩慢になり困っております。
約20秒位で終了していたものが15分くらい掛かってしまいます。
どなたか解決法ご存じないでしょうか?
宜しくお願いいたします。

  Set myhbook = Workbooks("1.xls")
  myhbook.Activate
  Set myh1sheet = Worksheets("表")
  myh1sheet.Activate
  
  For j = dgs(1) To dgd(1)       このdgsは1、dgdは19です。
  hd(j) = Cells(hg(j), hl(j))
  Next
    
  Set myh2sheet = Worksheets("表-1")
  myh2sheet.Activate
  
  For K = dgs(2) To dgd(2)       このdgsは33、dgdは4000です。
  hd(K) = Cells(hg(K), hl(K))
  Next
   
  Set mydbook = Workbooks("dat.xls")
  mydbook.Activate
  Set mydsheet = Worksheets("dat1")
   
  For j = dgs(1) To dgd(1)
  Cells(5 + j, dgd(3)) = hd(j)     このdgdは3です
  Next
  For K = dgs(2) To dgd(2)
  Cells(5 + K, dgd(3)) = hd(K)
  Next

【40218】Re:2002から2003に移行して
発言  Ned  - 06/7/9(日) 11:26 -

引用なし
パスワード
   こんにちは。
詳細不明ですが、まず
1)Cells既定のプロパティを省略しないで書く。
2)hdが何者か不明ですが、hd(j)とhd(K)を分ける。
3)セルへの書込みをLoopではなく、まとめて行う。
などとして、整理されてはいかがでしょう。

With Workbooks("dat.xls").Worksheets("dat1")
  .Cells(6, dgd(3)).Resize(UBound(hd)).Value = Application.Transpose(hd)
End With

・・・な感じになるかと。(↑hd(j)とhd(K)を分けた後のhd(j)の処理です)
hdを2次元配列でセットするとTransposeしなくても良いとは思いますが。

ReDim hd(1 To dgd(1), 1 To 1)
For j = 1 To dgd(1)
  hd(j, 1) = myh1sheet.Cells(hg(j), hl(j)).Value
Next

With Workbooks("dat.xls").Worksheets("dat1")
  .Cells(6, dgd(3)).Resize(UBound(hd)).Value = hd
End With


#何かカン違いしてハズしてたらごめんなさい。

【40230】Re:2002から2003に移行して
お礼  仲ちゃん  - 06/7/9(日) 23:11 -

引用なし
パスワード
   ▼Ned さん:
ありがとう御座いました。
hdのみとし 他はhfとし書き直しました。
私のセルの位置設定が何かおかしいようでdatシートへの登録は位置ずれがありますが時間的なことは完全にクリアー致しました。
ありがとう御座いました。
明日もう少しで直し終えると思います。
本当にありがとうごっざい増した。
完成時には改めてご報告いたします。

【40337】Re:2002から2003に移行して
お礼  仲ちゃん E-MAIL  - 06/7/11(火) 19:42 -

引用なし
パスワード
   ▼仲ちゃん さん:
>▼Ned さん:
ありがとうございました。
全て解決しスムーズに動くようになりました。
お教え頂いた以外の部分もあり解決するのに時間がかかってしまいました。
本当にありがとうございました。

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