Excel でSQL文

以下のサイトにExcelのセルにSQL文を書いて結果を得る方法が説明されていました。

http://q.hatena.ne.jp/1154589462

ちょっと引っかかったところの補足を入れ、メモしておきます。
まず、ADOを使うため、参照設定を行います。
VBAのエディタのメニューから、「ツール→参照設定」を選択します。

excelsql1

以下の画面で、「Microsoft OLE DB ActiveX Data Objects 1.0 Library」にチェックを入れ、「OK」をクリックします。

excelsql2

標準モジュールを追加し、以下のコードを記述します。
Public Function ExecSQL(ByVal sql As String) As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim xl_file As String
xl_file = ThisWorkbook.FullName ‘他のブックを指定しても良し
Set cn = New ADODB.Connection
cn.Provider = “MSDASQL”
cn.ConnectionString = “Driver={Microsoft Excel Driver (*.xls)};” & _
“DBQ=” & xl_file & “; ReadOnly=False;”
cn.Open
Set rs = New ADODB.Recordset
rs.Open sql, cn, adOpenStatic
ExecSQL = rs(“NAME”).Value
rs.Close
cn.Close
End Function

参照データベースとして、シート「Sheet2」に以下のようなテーブルを作成します。

excelsql3

以下のように、A1セルに、「2」を入力し、
A2セルに、「=execsql(“Select NAME from [Sheet2$] Where ID = ” & A1)」を入力すると、
A2セルには、「いいい」が表示されます。

excelsql4



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください