🍊

ExcelでSQLを使ってデータを抽出するマクロ

2025/01/16に公開

初めに

ExcelでSQLを使ってデータを抽出するマクロを作りました

データ

データは下記の画像です。

実装したソースコード

実装したソースコードは下記です

Sub sql_01()
  'DB接続変数
  Dim cn As ADODB.Connection
  'レコード変数
  Dim rs As ADODB.Recordset
  'ファイル名とSQL変数
  Dim File_Name, Sql As String
  'カーソル行変数
  Dim CurRow As Integer
    File_Name = ThisWorkbook.FullName   'DBのフルネーム。尚、このブック上(ThisWorkbook.FullName)でもOK
    CurRow = 1
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.Provider = "MSDASQL"
    cn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & "DBQ=" & File_Name & "; ReadOnly=True;"
    cn.Open
    Sql = "SELECT name,groups,dates FROM [Sheet1$] WHERE groups='乃木坂46' "
    rs.Open Sql, cn, adOpenStatic
    
    Do Until rs.EOF
        Sheets("Sheet5").Cells(CurRow, 1).Value = rs!Name
        Sheets("Sheet5").Cells(CurRow, 2).Value = rs!groups
        Sheets("Sheet5").Cells(CurRow, 3).Value = DateValue(rs!dates)
        rs.MoveNext
        CurRow = CurRow + 1
    Loop
    
    rs.Close
    cn.Close
  Set rs = Nothing
  Set cn = Nothing
End Sub

実行した結果

実行した結果は下記のとおりです。

最後に

ExcelでSQLを使ってデータ抽出したい方は挑戦してみてください。

Discussion