VBAは条件に合ったデータのクエリを実行の方法
VBAではSQL文を使うか、Excelの持つ関数を用いて、条件に合ったデータを検索できます。
SQL クエリを使用する
- Alt + F11 キーを押して Visual Basic for Applications エディタを開きます。
- コードウィンドウに以下のコードスニペットを挿入します:
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
- コード中の「YourDatabase.accdb」は実際のデータベースファイル名、「YourTable」はクエリするテーブル名、「YourCondition」はクエリ条件のフィールド名、「YourValue」はクエリ条件の値に置き換えてください。
- コードを実行すると、検索結果はExcelのワークシートにコピーされます。
方法その2: Excelの関数を活用する
- Visual Basic for Applications エディタを開きます(Alt + F11 キーを押す)。
- コードウィンドウに以下のコードスニペットを挿入してください。
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
- コード内の「Sheet1」はシート名、「YourValue」は検索条件の値に置き換えてください
- コード中の処理ロジック部分では、必要に応じてコピー、削除などの操作を実行できます。
具体的なクエリ条件や操作ロジックは、実際のニーズに応じて調整する必要があります。