Excel(VBA)でSQLを使おう!!

Excel内で手軽にSQLの勉強できるようになりますよ^^ 




■VBAコードサンプルは下記です^^ 適宜アレンジください!


Sub getDataBySQL()

    Dim cn As Object, strCn As String, i As Long, row As Long, col As Long

    Dim strPath As String, SQL As String, rs As Object, strSQLtype As String

    Dim wsMe As Worksheet

    Set wsMe = ThisWorkbook.Sheets("SQL①")

    row = 6

    col = 1

    Set cn = CreateObject("ADODB.Connection")    '接続オブジェクトを作成する

    Set rs = CreateObject("ADODB.Recordset")    'レコードセットオブジェクトを作成

    strPath = ThisWorkbook.FullName    '自分自身のファイルにアクセスする

    strCn = "provider=Microsoft.ACE.OLEDB.12.0;" & _

    "extended properties=Excel 12.0 Macro;data source=" & strPath 'マクロブック(.xlsm)の場合

    '"extended properties=Excel 12.0 xml;data source=" & strPath 'Excel(.xlsx)の場合


    cn.Open strCn    'データベースに接続する

    SQL = wsMe.Shapes("SQLTEXT1").TextFrame.Characters.Text 'Excelシート内にテクストボックス作成し、「SQLTEXT1」とオブジェクト名を変えてください。

    rs.Open SQL, cn    'SQLを実行してデータを取得する

    wsMe.Cells(row, col).CurrentRegion.Clear     'データを削除する

    For i = 1 To rs.Fields.Count '■タイトル記載

       wsMe.Cells(row, i) = rs.Fields(i - 1).Name

    Next

    wsMe.Cells(row + 1, col).CopyFromRecordset rs      'レコードセットのデータを貼り付ける

    rs.Close

End Sub


コメント