VBAは条件に合ったデータのクエリを実行の方法

VBAではSQL文を使うか、Excelの持つ関数を用いて、条件に合ったデータを検索できます。

SQL クエリを使用する

  1. Alt + F11 キーを押して Visual Basic for Applications エディタを開きます。
  2. コードウィンドウに以下のコードスニペットを挿入します:
Sub QueryData()
    Dim cn As Object
    Dim rs As Object
    Dim strSql As String
    
    ' 连接到数据库
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YourDatabase.accdb;"
    
    ' 定义查询语句
    strSql = "SELECT * FROM YourTable WHERE YourCondition = 'YourValue';"
    
    ' 执行查询语句
    Set rs = cn.Execute(strSql)
    
    ' 将结果输出到Excel工作表
    Sheet1.Range("A1").CopyFromRecordset rs
    
    ' 关闭连接
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing
End Sub
  1. コード中の「YourDatabase.accdb」は実際のデータベースファイル名、「YourTable」はクエリするテーブル名、「YourCondition」はクエリ条件のフィールド名、「YourValue」はクエリ条件の値に置き換えてください。
  2. コードを実行すると、検索結果はExcelのワークシートにコピーされます。

方法その2: Excelの関数を活用する

  1. Visual Basic for Applications エディタを開きます(Alt + F11 キーを押す)。
  2. コードウィンドウに以下のコードスニペットを挿入してください。
Sub QueryData()
    Dim lastRow As Long
    Dim i As Long
    
    ' 获取数据区域最后一行
    lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 遍历数据区域,根据条件筛选数据
    For i = 2 To lastRow
        If Sheet1.Cells(i, 1).Value = "YourValue" Then
            ' 符合条件的数据,处理逻辑
            ' ...
        End If
    Next i
End Sub
  1. コード内の「Sheet1」はシート名、「YourValue」は検索条件の値に置き換えてください
  2. コード中の処理ロジック部分では、必要に応じてコピー、削除などの操作を実行できます。

具体的なクエリ条件や操作ロジックは、実際のニーズに応じて調整する必要があります。

bannerAds