| 
    
     |  | ▼Jaka さん: >VBA上のMatch関数の使い方(エラー処理)はおいておいて、VBA上から他ブックを開かずにMatch関数は使えないと思います。
 >閉じたままと言うなら、適当なセルに関数を入れて、その返り値を取得したらどうでしょうか?
 
 がーーーーーーーん…他ブックを開かずにはできないんですね…
 それならばVLookup関数で、と思って以下のようにしてみましたが、
 
 Range("A4").Value = Application.WorksheetFunction.VLookup(AAA, Workbooks(nowPATH).Worksheets("TOTAL").Range("C12:C32"), 1, False)
 
 …同様のエラーが出てしまうということは、
 やっぱりVLookup関数も他ブックを開かずにはできないんですね。
 
 
 けっきょく何がしたいのかといえば、
 他ブックのC12:C32内に「AAA」があれば、その行のE〜Zまでの値を取得したいのです。
 何行目かがわかれば、以下のマクロ(一部省略)でできることは確認できたのですが。
 
 ---------------------------------------
 Dim nowPATH As String
 nowPATH = "C:\Documents and Settings\(中略)\○○.xls"
 
 Dim nowFILE As String
 nowFILE = Dir(nowPATH)
 
 Workbooks(nowFILE).Worksheets("TOTAL").Range("E" & i & ":Z" & i).Copy
 ThisWorkbook.Worksheets("テスト1").Range("A2").PasteSpecial Paste:=xlValues
 ---------------------------------------
 
 対象となるファイル数が、多ければ200以上にもなりかねないので、
 ファイルを開かずに処理をしたいと考えてます。
 もし何かいい方法をご存知でしたら、ぜひご教授ください。
 なにとぞ宜しくお願いします。
 
 |  |