Excel VBA質問箱 IV

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

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


44627 / 76735 ←次へ | 前へ→

【37123】Re:Like関数を使った処理を高速で行...
発言  Ned  - 06/4/22(土) 16:09 -

引用なし
パスワード
   ▼カド さん:
こんにちは。
>私のコードで3.5分、Nedさんのコードで5秒でした。
そんなに変わりましたか。とりあえず良かったですね^ ^
再度チューニングすると

Dim a As Single, b As Single
Dim ACELL, CCELL, vc
Dim i3 As Long, i1 As Long
Dim r As Range
Dim AAA() As String '書き出し用配列をString型に。

a = Timer
Set r = ActiveCell
With r.Offset(, -3)
  ACELL = Range(.Cells, .End(xlDown).Offset(, 1)).Value
End With
With Range(r, r.End(xlDown))
  CCELL = .Value
  ReDim AAA(1 To UBound(CCELL), 1 To 1)
  For Each vc In CCELL
    i3 = i3 + 1
    For i1 = 1 To UBound(ACELL)
      If vc Like ACELL(i1, 1) Then
        AAA(i3, 1) = ACELL(i1, 2)
        Exit For
      End If
    Next i1
  Next vc
  With .Offset(, 1)
    .ClearContents
    .Value = AAA
  End With
End With
b = Timer
Set r = Nothing
Debug.Print b - a

な感じでしょうか。

先日から高速化についてのご質問が多いようなので、参考サイトをご紹介しておきます。
http://www.officetanaka.net/excel/vba/speed/index.htm
http://www.bcap.co.jp/hanafusa/VBHLP/sonota_no1.htm
定番化してますので、既知であればごめんなさい。
0 hits

【37107】Like関数を使った処理を高速で行うには? カド 06/4/21(金) 20:11 質問
【37108】Re:Like関数を使った処理を高速で行... neptune 06/4/21(金) 20:52 発言
【37109】Re:Like関数を使った処理を高速で行... カド 06/4/21(金) 22:25 発言
【37110】Re:Like関数を使った処理を高速で行... neptune 06/4/21(金) 23:09 回答
【37111】Re:Like関数を使った処理を高速で行... カド 06/4/21(金) 23:53 発言
【37112】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 1:24 発言
【37114】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 2:47 発言
【37116】Re:Like関数を使った処理を高速で行... カド 06/4/22(土) 7:36 お礼
【37123】Re:Like関数を使った処理を高速で行... Ned 06/4/22(土) 16:09 発言
【37248】Re:Like関数を使った処理を高速で行... カド 06/4/26(水) 21:43 お礼
【37115】Re:Like関数を使った処理を高速で行... カド 06/4/22(土) 7:31 発言

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