• 締切済み

エクセルVBAで別のファイルのセルの中身を表示したい

エクセルVBAを使って別のファイルのセルの中身を表示させようとしているのですが思うように出来ません。 イメージとしては、シートのA列に名前、B列に点数が入力されている「テスト.xls」というファイルがあるのですが、 この「テスト.xls」のB列に入力されている点数が100~80に該当する名前を「優.xls」というファイルに表示させていきたいというものです。 つたない質問文で申し訳ありませんが、 どなたか回答よろしくお願いします。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 参考書は自身で見て購入された方が確実かと思います。 サイトなら、 http://www.asahi-net.or.jp/~ef2o-inue/top01.html http://www.officetanaka.net/ http://www.eurus.dti.ne.jp/~yoneyama/index.html http://moug.net/tech/exvba/ 等を参考にしてます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

コードはテスト.xlsに書くとします。 双方のワークシート名をSheet1とします。 Sub try() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim r As Range Set ws1 = Workbooks("Book1.xls").Worksheets("Sheet1") '値.xls Set ws2 = ThisWorkbook.Worksheets("Sheet1") 'テスト.xls With ws2 .Range(.Range("A1"), .Cells(Rows.Count, 2).End(xlUp)).AutoFilter 2, ">=" & 80, xlAnd, "<=" & 100 ' Rows.Count,1 で名前だけ。点数を含めるなら 1 を 2 に Set r = .Range(.Range("A1"), .Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible) r.Copy ws1.Range("A1") .AutoFilterMode = False End With Set ws1 = Nothing Set ws2 = Nothing End Sub 名前だけを書き出してます。 ご参考程度に。

124048
質問者

お礼

回答ありがとうございます。エクセルBVAは初めて使うのですがもし良かったらお勧めの参考書など教えてもらえないでしょうか?

関連するQ&A