質問: sqlを使用して他のexcelファイルからexcelデータテーブルを作成できますか? 私はsqlを十分に知っており、基本的なクエリを実行し、データベース内の複数のテーブルに分割されたデータを操作します。私はexcel2007を少しよく知っており、機械工学プロジェクトを管理するために頻繁に使用しています。excelで、複数のスプレッドシートのデータを操作して1つのテーブルに結合したい場合があります。これはsqlクエリに適したタスクです。通常、このような問題が発生した場合、すぐに反応するのは、頭の中でクエリを作成し始めることです。残念ながら、多くの場合、sqlクエリはexcel関数に簡単に変換できず、これが私の足を引っ張っています。excel内でこれらの関数にsqlを利用することは可能ですか?
回答: ado excel vbaで使用できます。例:dim cn as adodb.connection dim rs as adodb.recordset ''this is just a convenient name to test, it would probably be ''better to use the full file name eg c:\docs\xl.xls strfile = workbooks(1).fullname ''for ace see: http://www.connectionstrings.com/excel-2007 strcon = "provider=microsoft.jet.oledb.4.0;data source=" & strfile _ & ";extended properties=""excel 8.0;hdr=yes;imex=1"";" set cn = createobject("adodb.connection") set rs = createobject("adodb.recordset") cn.open strcon ''pick one: strsql = "select * from datatable" ''named range strsql = "select * from [sheet1$a1:e346]" ''range strsql = "select * from [sheet1$]" ''all the data in a sheet strsql = "select * from [excel 8.0;hdr=yes;imex=1;" _ & "database=c:\docs\ltd.xls].[sheet1$]" ''refer to second workbook rs.open strsql, cn ''write a recordset to a sheet worksheets("sheet3").cells(2, 1).copyfromrecordset rs クエリでは、jetsqlで受け入れ可能なものをすべて使用できます。 fundamental microsoft jet sql for access 2000 intermediate microsoft jet sql for access 2000 advanced microsoft jet sql for access 2000 あなたはかなり多くを見つけるでしょう: https://stackoverflow.com/ 、ms access、sql server、mysqlなどへの追加を含みます。