MW211 EXIT

devlog
ExcelVBA/存在チェックいろいろ
2017年11月22日
存在チェックのやり方を遅い順に列挙してみた。
┌──────────────────────────────────────┐
│Set 検索 = 範囲.Find( _                                                     │
│    What:=セル.Value, _                                                     │
│    After:=セル, _                                                          │
│    LookIn:=xlValues, _                                                     │
│    Lookat:=xlWhole, _                                                      │
│    SearchOrder:=xlByRows, _                                                │
│    SearchDirection:=xlNext, _                                              │
│    MatchCase:=True, _                                                      │
│    MatchByte:=True _                                                       │
│)                                                                           │
│If 検索.Address <> セル.Address Then                                        │
│    ' 重複あり                                                              │
│Else                                                                        │
│    ' 重複なし                                                              │
│End If                                                                      │
├──────────────────────────────────────┤
│If WorksheetFunction.CountIf(範囲, セル.Value) > 0 Then                     │
│    ' 重複あり                                                              │
│Else                                                                        │
│    ' 重複なし                                                              │
│End If                                                                      │
├──────────────────────────────────────┤
│On Error Resume Next                                                        │
│Call WorksheetFunction.VLookup(セル.Value, 範囲, 1, False)                  │
│If Err.Number = 0 Then                                                      │
│    ' 重複あり                                                              │
│Else                                                                        │
│    ' 重複なし                                                              │
│End If                                                                      │
│On Error GoTo 0                                                             │
├──────────────────────────────────────┤
│On Error Resume Next                                                        │
│Call WorksheetFunction.Match(範囲, セル.Value, 0)                           │
│If Err.Number = 0 Then                                                      │
│    ' 重複あり                                                              │
│Else                                                                        │
│    ' 重複なし                                                              │
│End If                                                                      │
│On Error GoTo 0                                                             │
└──────────────────────────────────────┘
分類:ExcelVBA