3.簡単な検索
   たった2行のマクロですが、異なるブック間で、同一名の項目の他のデータを抽出します。
    2項ではsubで定義したマクロでしたが、Functionはシート上で関数として利用でします。
    使う時はこの関数を登録したエクセルファイルを開いておきます。
 
    VLOOKUPはコピー元と一致していなくとも、値を返します。
    更に、並べ替えしてないと、検索して通りこした段階で前の位置の値を取り出すため、
    違った結果となります。
 
    このブックを呼び出しておき、合成したいデータのブックも開いておきます。
    シート間でも使えます。あとは通常の関数として使います。
      =Fmatch(検査文字a, 検査範囲b, 抽出範囲c)
      =Fmatch(A4,match2!A:A,match2!B:B)のように選びます。
 
    別のブック、シートから使う場合、関数を登録してあるブック名の例
    vbaHLP3.xls!が必要です。下記が正解。
      =vbaHLP3.xls!Fmatch(A2,"Sheet1!A:A","Sheet1!B:B")
    関数/挿入でボックスに入力していくと”がついて、値が出ません。
      =vbaHLP3.xls!Fmatch(A2,"Sheet1!A:A","Sheet1!B:B")
 

   'Fmatch:ユーザー関数
 '             
 Function Fmatch(検査文字a, 検査範囲b, 抽出範囲c)
 
 Fmatch = ""   '初期値/エラーの時。ないと#valueとなる。
     Fmatch1 = Application.Match(検査文字a, 検査範囲b, 0)
     
 'colum1 = 抽出範囲c.Column    '列番号の値抽出
 On Error GoTo lastline
 
     Fmatch = 抽出範囲c(Fmatch1).Formula    'データの取り出し
 
 lastline:
 End Function

 シート上での実施例
  2列目に関数を入力しています。ひとつのセルに入れてあとは下にコピーします。

以下は検索するデータです。上の2列目に値が表示されています。

    はじめに 1.まずは作ってみよう 2.基本形 /3.簡単な検索