タグ: VBA SQL エクセル

SQL文を使って抽出する

example(VBA)

Public Function ExecuteScalar(ByVal query As String) As String 
  Dim conObj As Object 
  Dim rsObj As Object
  Dim xlFile As String
  
  Set conObj = CreateObject("ADODB.Connection")
  Set rsObj = CreateObject("ADODB.Recordset ")
  xlFile = ThisWorkbook.FullName '違うファイルから取得する時は該当ファイルのパス
  conObj.Provider = "MSDASQL" 
  conObj.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & xlFile & "; ReadOnly=False;" 
  conObj.Open 
  call rsObj.Open(query, conect, -1) 
  ExecuteScalar = rsObj("Name").Value 
  rsObj.Close 
  conObj.Close 
End Function

シート名は最後に$をつけるようです。 データの状態によっては、値が取れたりNULLが帰ってくることもあります。 原因は調査中ですが、なにかわかったらUpしたいと思います。