11.[2弾-136]A列とB列を比較して抽出する

[2002/01/29 U.Kさんからの質問]
私は金融の仕事でエクセルVBAを使用しておりますが是非ステートメントを記述できるようになり 仕事で活用したいと日々練習しております。 さてExcel500連発第二弾の136で記述なさったデータ抽出のステートメントに 関し教えていただきたくメール致しました。

質問-------
A列とB列を比較してあるものをD列にないものをF列に抽出していますが 次のステートメントについて教えてください。
c 1 =1 : c2 = 1
For i = 1 To endr1
keym = Cells(i , 1)
Set actv =Range(Cells(1,1),Cells(endr2,1))
.find(keym,,,xlwhole,xlByColumns,xlNext,False)

D列とF列を表示しているc1、c2の意味、表示形式を教えてください i = 1 の1がどこのセル内容を意味しているのか教えてください。 Rangeをオブジェクトfindをメソッドで使っていますが、find()の() には何を記述するのかfindの使い方を教えてください。( keym,,,)の,,,カンマが 何を意味し省略しているのか教えてください。 Columnが列というのは知っているのですがxlByColumnとの違い、 xlwhole,xlByColumns,xlNext,Falseの意味を教えてください。
宜しくお願いします。

    c1 = 1: c2 = 1      'c1はD列行カウント、c2はF列行カウント、データ形式は数字
For i = 1 To endr1   'iの1は1行目
    keym = Cells(i, 1)  'この1はA列、したがって(2,1)ならA2セル
    
    Set actv = Range(Cells(1, 1), Cells(endr2, 1)) _
     .find(keym, , , xlWhole, xlByColumns, xlNext, False)

find()の()内の意味は下記。(特に指定しない場合はカンマのみ)
find([1],[2],[3],[4],[5],[6],[7],[8])
[1] What → 検索内容 (上記の場合は変数keymが検索するデータ)
[2] After → 検索開始セル (上記は省略で、セル範囲の左上隅)
[3] LookIn → xlFormulas:書式、xlValues:数値軸、xlNotes:メモ(上記は省略)
[4] LookAt → xlWhole:全体、xlPart:検索文字列を含むセルを対象
[5] SearchOrder → xlByColumns:列単位で検索、xlByRows:行単位で検索
[6] SearchDirection → xlNext:後方に検索、xlPrevious:前方に検索
[7] MatchCase → True:大文字と小文字を区別する、False:区別しない
[8] MatchByte → True:半角と全角を区別する、False:区別しない
  
カンマの意味 → 何番目の引数か識別する為に省略の場合もカンマが必要
        省略してfind(keym, MatchCase:=False)のように記述する方法もある
なお、掲載のサンプルマクロが間違っています。申し訳ありません。
B列のデータを検索するのであり、

誤:Set actv = Range ( Cells( 1 , 1) , Cells( endr2, 1)).find

正:Set actv = Range ( Cells( 1 , 2) , Cells( endr2, 2)).find

今後も宜しくお願いします。

【戻る】