2枚のExcelファイル(ファイルXとしましょう)があります。最初のシートにチャートを表示します。次に、チャートのデータがあります。グラフからデータを取得するには、Group by、orderbyなどのSQLで行うようにそのデータを処理する必要があります。同じExcelファイル(ファイルX)のVBAコードを使用して、oledbを使用して2番目のシートからデータを読み取る方法はありますか?
ありがとう!!
SQLを使用して2つの範囲のデータを結合する例を次に示します。ファイルが開いている場合は正常に機能します(ファイルパスが必要なため、保存されている限り)。
Sub SqlJoin()
Dim oConn As New ADODB.Connection
Dim oRS As New ADODB.Recordset
Dim sPath
Dim sSQL As String
sSQL = "select a.blah from <t1> a, <t2> b where a.blah = b.blah"
sSQL = Replace(sSQL, "<t1>", Rangename(Sheet1.Range("A1:A5")))
sSQL = Replace(sSQL, "<t2>", Rangename(Sheet1.Range("C1:C3")))
If ActiveWorkbook.Path <> "" Then
sPath = ActiveWorkbook.FullName
Else
MsgBox "Workbook being queried must be saved first..."
Exit Sub
End If
oConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & sPath & "';" & _
"Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';"
oRS.Open sSQL, oConn
If Not oRS.EOF Then
Sheet1.Range("E1").CopyFromRecordset oRS
Else
MsgBox "No records found"
End If
oRS.Close
oConn.Close
End Sub
Function Rangename(r As Range) As String
Rangename = "[" & r.Parent.Name & "$" & _
r.Address(False, False) & "]"
End Function