Excel VBA質問箱 IV

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

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


42350 / 76732 ←次へ | 前へ→

【39453】Re:処理速度アップの方法は無いですか
回答  てっちゃん  - 06/6/24(土) 13:42 -

引用なし
パスワード
   ▼勉強中です さん:
こんにちは

「対象マスター」シートと「発注商品」シートのJコードを見て、
一致するものを、対象マスターシートから削除し、
次に、対象マスターシートを分類コード順に並び替える、
という処理で良いですか?

良いという前提で回答します。


1.「対象マスター」(表内)に1列挿入します。
  例えばA列とB列の間に挿入するとします。

2.B列に式を挿入します。
  =IF(ISERROR(VLOOKUP(A2,発注商品!$A$2:$A$65536,1,FALSE)),0,-1)

  「発注商品!$A$2:$A$65536」等の行数は、適宜取得して変更してください。
  A:Aでも良いですが、取得して範囲を設定したほうが処理速度は速いと思います。

2-補.件数が少ない場合は、このままでも良いですが、件数が多い場合は、
  B列の式(VLOOKUP)を外した方が、処理速度はより向上するかと思います。
  (コピー→形式を選択して貼り付け→値(→Esc))

3.B列で並べ替えをします。
  オリジナルのB列が空白なので、範囲の取得に注意して下さい。


4.SUM(B2:B65536)を求めます。
  3で並べ替えをした際の、-1、すなわち削除対象の行数が分かります。

5.対象行を削除します。

6.挿入した列(B列)を削除します。

7.C列(分類コード)で並べ替えをします。
  B列(空白?)があるようなので、範囲の取得に注意。


以上のステップでコードを作成すると、現在のものよりは処理速度は上がると思います。

簡単な解説を入れると、1行ずつフィルター/削除していたものを、
削除用フラグを付けて、一度に削除する、という処理にしてみました。


最初の前提が違ったら、ゴミレスです。無視してください。
0 hits

【39450】処理速度アップの方法は無いですか 勉強中です 06/6/24(土) 10:34 質問
【39453】Re:処理速度アップの方法は無いですか てっちゃん 06/6/24(土) 13:42 回答
【39454】Re:処理速度アップの方法は無いですか 勉強中です 06/6/24(土) 13:58 お礼
【39455】Re:処理速度アップの方法は無いですか Kein 06/6/24(土) 14:10 回答
【39456】Re:処理速度アップの方法は無いですか Hirofumi 06/6/24(土) 14:14 回答
【39457】Re:処理速度アップの方法は無いですか Hirofumi 06/6/24(土) 14:20 回答
【39462】Re:処理速度アップの方法は無いですか 勉強中です 06/6/24(土) 15:28 お礼
【39473】Re:処理速度アップの方法は無いですか Hirofumi 06/6/24(土) 18:59 回答
【39475】Re:処理速度アップの方法は無いですか 勉強中です 06/6/24(土) 19:53 お礼

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